SFTP・FTPS・SCPの違いを図解で解説
〜安全なファイル転送の選び方〜

サーバにファイルを送るとき、「FTPは危ないのでSFTPを使って」と言われたことはないでしょうか。名前が似ているSFTP、FTPS、SCPは、何が違うのか迷いやすいものです。

この記事では、3つの違いと選び方を図を使って説明します。結論からいうと、迷ったらSFTPを選びましょう。

FTP自体の仕組みは、FTPの仕組みを図解で説明で解説しています。

なぜFTPは避けたほうがよいのか

FTPは、ファイルの中身だけでなく、ログインのIDとパスワードも暗号化せずに送ります。インターネット経由で使うと、途中で盗み見られるおそれがあります。

FTPの通信の図。IDとパスワードが暗号化されずに流れ、途中で見られると読める

そこで使われるのが、通信を暗号化するFTPS、SFTP、SCPです。

3つの違いを一覧で比較

項目FTPSSFTPSCP
仕組みの土台FTP + TLSSSHSSH
主なポート21 または 9902222
接続の数制御用と転送用の2つ1つ1つ
主な認証IDとパスワード、証明書IDとパスワード、公開鍵IDとパスワード、公開鍵
できることファイル転送と操作ファイル転送と操作ファイルのコピー
おすすめ度FTPの環境を活かしたいとき第一候補手早いコピー向け
FTP、FTPS、SFTPの通信の違いの図。FTPは暗号化なしの接続が2つ、FTPSはTLSで暗号化した接続が2つ、SFTPは22番ポートのSSH接続が1つ

FTPSとは

FTPSは、FTPの通信をTLSで暗号化したものです。Webサイトのhttpsと同じ暗号化の技術を使います。TLSの仕組みは、SSL/TLS通信の仕組みで説明しています。

FTPの仕組みをそのまま使うので、接続が2つに分かれます。転送用の接続にもポートが必要で、暗号化された通信の中身はファイアウォールから見えません。そのため、ファイアウォールの設定が複雑になりやすいことが弱点です。

接続方法には、次の2種類があります。

  • 明示的FTPS: 21番ポートに接続してから、暗号化を始める
  • 暗黙的FTPS: 990番ポートに接続し、最初から暗号化する
FTPSの2つの接続方法の図。明示的FTPSは21番ポートに接続してから暗号化を始め、暗黙的FTPSは990番ポートに接続して最初から暗号化する

サーバ側にはTLSの証明書が必要です。取引先の環境がFTPSに対応している場合などに使います。

SFTPとは

SFTPは、SSHの暗号化された接続の中でファイルを転送する仕組みです。

名前は似ていますが、FTPを暗号化したものではなく、まったく別のプロトコルです。 FTPとの互換性はありません。

接続は22番ポートの1つだけなので、ファイアウォールの設定が簡単です。SSHが使えるサーバなら、多くの場合そのまま利用できます。

ファイルの転送だけでなく、一覧の表示、名前の変更、削除などの操作もできます。IDとパスワードのほかに、より安全な公開鍵認証も使えます。

コマンドでは、次のように接続します。

sftp user@example.com

SCPとは

SCPは、SSHを使ってファイルをコピーする仕組みです。1回のコマンドで手早くコピーできます。

scp report.txt user@example.com:/home/user/

ただし、ファイルの一覧表示や削除などはできません。また、従来のSCPのプロトコルには設計の古さがあり、OpenSSHの開発チームはSFTPなどの利用を勧めています。OpenSSH 9.0以降の scp コマンドは、標準で内部の通信にSFTPを使うようになりました。

コマンドの使い方はそのままで、中身はより安全な方式に置き換わりつつあります。

どれを選べばよいか

状況おすすめ
特に指定がないSFTP
サーバに1つだけファイルをコピーしたいSCP(scp コマンド)
取引先や機器がFTPSを指定しているFTPS
閉じた社内ネットワークの古い機器FTPが残る場合もある。切り替えを検討する
どれを選ぶかの表。特に指定がなければSFTP、1つのファイルを手早くコピーするならSCP、FTPSを指定されていればFTPS

レンタルサーバなどでは、使える方式が決まっていることもあります。まず、提供元の案内を確認しましょう。

よく使うソフト

コマンドが苦手な場合は、画面で操作できるソフトが便利です。

  • WinSCP: Windows向け。SFTP、SCP、FTP、FTPSに対応
  • FileZilla: Windows、Mac、Linuxで使える。SFTP、FTP、FTPSに対応

Windows 10以降では、コマンドプロンプトなどから sftp や scp のコマンドを使える環境が多くなっています。

使うときの注意点

暗号化された方式でも、設定が甘ければ安全とは言えません。

  • パスワードは長く推測されにくいものにする。できれば公開鍵認証を使う
  • 初めて接続するときは、サーバの確認メッセージを読む
  • 秘密鍵のファイルは、他の人に渡さない
  • ソフトは最新の状態に保つ

まとめ

  • FTPはパスワードも暗号化されないので、インターネット経由では避ける
  • FTPSは、FTPをTLSで暗号化したもの
  • SFTPは、SSHを使う別のプロトコルで、ポートは1つ
  • SCPは、SSHを使った手早いコピー向け
  • 迷ったらSFTPを選ぶ