安全なファイル転送が求められる現代において、「SFTP」という言葉を耳にする機会は増えています。ただし、FTPやFTPSとの違いが曖昧だったり、接続方法がわからなかったりする方も多いのではないでしょうか?この記事では、「SFTPとは何か?」という基本から、仕組み・接続方法・FTPSとの違い、さらにはポート番号・秘密鍵・ファイル転送の流れやシーケンス図まで、図解を交えながらわかりやすく解説していきます。
SFTPとは?
SFTP(SSH File Transfer Protocol)は、SSH(Secure Shell)を基盤とした暗号化通信に対応したファイル転送プロトコルです。FTPとは異なり、通信内容すべてが暗号化されるため、セキュアなファイル送受信を実現できます。
SFTPの図解での仕組み
SFTPは以下のような通信フローで構成されます:
- クライアントがSFTPサーバーに接続要求を送信
- SSHセッションが確立される(ポート22)
- 認証(ID/パスワード、または公開鍵と秘密鍵)
- ファイル一覧の取得/ファイル転送などの操作
[クライアント] → [SSHで接続] → [SFTPサーバー]
↓
[ファイル操作]
SFTPサーバーとは?
SFTPサーバーとは、SSHプロトコル上でSFTP通信を受け付けるサーバーのことを指します。Linuxサーバーであればsshd
(SSHデーモン)が稼働していれば、基本的にSFTPも使用可能です。
SFTPとFTPSの違い
FTPSとは?
FTPSは、FTP(File Transfer Protocol)にSSL/TLSによる暗号化を追加した方式です。クライアントとサーバー間の通信は一部暗号化されますが、ポートの種類が多く、ファイアウォールに制限されやすいというデメリットもあります。
違いの比較表
項目 | SFTP | FTPS |
---|---|---|
基盤 | SSH | FTP + SSL/TLS |
ポート番号 | 22 | 21(制御)+20(データ) |
ファイアウォール対応 | ◎(1つのポート) | △(複数ポート開放が必要) |
認証方式 | パスワード / 秘密鍵 | パスワード / 証明書 |
通信内容 | 完全に暗号化 | 部分的に暗号化 |
SFTPの接続方法
パスワード認証の場合
sftp user@example.com
→ 接続後、パスワードを入力してログイン
秘密鍵認証の場合
- 秘密鍵と公開鍵を用意(
ssh-keygen
) - 公開鍵をサーバーの
~/.ssh/authorized_keys
に配置 - 秘密鍵でログイン
sftp -i ~/.ssh/id_rsa user@example.com
GUIクライアントを使う場合
- WinSCP(Windows)
- Cyberduck(Mac)
どちらも秘密鍵を使った接続が可能です。
SFTPで使うポート番号
デフォルトではポート番号22番を使用します。SSHと同じポートを利用するため、ファイアウォールで特別な設定を追加する必要がないのが特徴です。
※セキュリティ向上のため、カスタムポートに変更する運用も可能です(例:ポート10022など)。
SFTPでのファイル転送方法
ファイルアップロード
put localfile.txt
→ ローカルのファイルをサーバーへ送信
ファイルダウンロード
get remotefile.txt
→ サーバーのファイルをローカルへ取得
ディレクトリ移動
cd /path/to/directory
ローカル側のディレクトリ変更
lcd /local/path
ファイル一覧表示
ls
SFTP通信のシーケンス図(簡易)
[クライアント] ---接続要求---> [サーバー(ポート22)]
↓ ↓
鍵認証またはパスワード SSHセッション確立
↓ ↓
コマンド送信(put/get等) 応答処理
↓ ↓
転送完了・セッション終了 ログ記録
このように、接続からファイル転送、セッション終了までが1つのSSHセッション内で完結します。
よくあるトラブルと対処法
「接続できない」場合の原因
- ポート22が開いていない(ファイアウォール確認)
- ユーザーがSFTPアクセスを許可されていない
- 秘密鍵と公開鍵のペアが一致していない
接続後にファイルが見えない
- chroot設定などで制限されている可能性
- パーミッションの確認
まとめ|SFTPは安全で扱いやすいファイル転送のスタンダード
- SFTPはSSHベースの安全なファイル転送プロトコル
- ポート22のみで通信でき、ファイアウォールとも相性が良い
- FTPSよりもシンプルで導入しやすい
- パスワード認証または秘密鍵でのログインが選べる
- GUIクライアントを使えば初心者でも安心
今後、安全なファイル転送が求められる場面では、SFTPの理解と正しい運用がますます重要になります。