FTPSとSFTPの違いは何ですか?

従業員向けにリモートファイル転送機能を設定しているときは、できるだけシンプルで安全なものにする必要があります。それを念頭に置いて、FTPSとSFTPのどちらが良いですか?今日のスーパーユーザーのQ&A投稿には、好奇心旺盛な読者の質問に対する回答があります。

今日の質疑応答セッションは、コミュニティ主導のQ&AWebサイトのグループであるStackExchangeの下位区分であるSuperUserの好意で行われます。

スクリーンショットはkojihachisu(Flickr)提供。

質問

スーパーユーザーリーダーuser334875は、FTPSとSFTPの違いと、どちらが優れているかを知りたいと考えています。

私は、リモートで作業する4人の従業員がファイルを転送できるようにシステムをセットアップしようとしています。安全にするためにも必要です。SFTPはFTPSよりも優れていますか?2つの違いは何ですか?

2つの違いは何ですか?どちらが優れていますか?

答え

スーパーユーザーの貢献者であるNuTTyXとVdubが答えを持っています。まず、NuTTyX:

これらは2つの完全に異なるプロトコルです。

FTPSは、セキュリティのためにSSLを使用したFTPです。制御チャネルを使用し、データ転送用の新しい接続を開きます。SSLを使用しているため、証明書が必要です。

SFTP(SSHファイル転送プロトコル/セキュアファイル転送プロトコル)は、ファイル転送機能を提供するためにSSHの拡張として設計されたため、通常、データと制御の両方にSSHポートのみを使用します。

ほとんどのSSHサーバーのインストールでは、SFTPがサポートされますが、FTPSでは、サポートされているFTPサーバーの追加構成が必要になります。

Vdubからの回答が続きます:

FTPS(FTP / SSL)は、FTPソフトウェアが安全なファイル転送を実行できるさまざまな方法を提供するために使用される名前です。それぞれの方法で、標準のFTPプロトコルの下にあるSSL / TLSレイヤーを使用して、制御チャネルやデータチャネルを暗号化します。

長所:

  • 広く知られ、使用されている
  • コミュニケーションは人間が読んで理解することができます
  • サーバー間ファイル転送のサービスを提供します
  • SSL / TLSには優れた認証メカニズムがあります(X.509証明書機能)
  • FTPおよびSSL / TLSのサポートは、多くのインターネット通信フレームワークに組み込まれています

短所:

  • 統一されたディレクトリリスト形式がありません
  • セカンダリDATAチャネルが必要であるため、ファイアウォールの背後で使用するのが困難です
  • ファイル名の文字セット(エンコーディング)の標準を定義していません
  • すべてのFTPサーバーがSSL / TLSをサポートしているわけではありません
  • ファイルまたはディレクトリの属性を取得および変更するための標準的な方法がありません

SFTP(SSHファイル転送プロトコル)は、信頼できるデータストリームを介してファイル転送および操作機能を提供するネットワークプロトコルです。これは通常、SSH-2プロトコル(TCPポート22)で使用され、安全なファイル転送を提供しますが、他のプロトコルでも使用できるようになっています。

長所:

  • 運用のほとんど(すべてではない)の側面を厳密に定義する、優れた標準の背景があります
  • 接続は1つだけです(DATA接続は必要ありません)
  • 接続は常に保護されています
  • ディレクトリリストは統一されており、機械で読み取り可能です
  • プロトコルには、権限と属性の操作、ファイルロック、およびその他の機能の操作が含まれています

短所:

  • 通信はバイナリであり、人間が読むために「そのまま」ログに記録することはできません
  • SSHキーの管理と検証が難しい
  • 標準では、特定のものをオプションまたは推奨として定義しています。これにより、さまざまなベンダーのさまざまなソフトウェアタイトル間で特定の互換性の問題が発生します。
  • サーバー間コピーおよび再帰的なディレクトリ削除操作はありません
  • VCLおよび.NETフレームワークに組み込みのSSH / SFTPサポートはありません

説明に追加するものがありますか?コメントで音を立ててください。他の技術に精通したStackExchangeユーザーからの回答をもっと読みたいですか?こちらのディスカッションスレッド全体をご覧ください。