C# SSH ファイル転送プロトコル (SFTP) で SFTP クライアントを探しているときに、これらの 2 つの適切なプロジェクト ( oneとtwo ) に出会いました。
基本を理解しようとしているときに、この紛らわしいウィキペディアの記事に出くわしました。SFTP と FTP over SSH の違いは何ですか? 「FTP over SSH」が異なる場合、ライブラリはサポートしていないようです。
違いは次のとおりです。
通常、トンネルは SSH コマンドを実行することによってセットアップされ、一度セットアップされると、クライアントとサーバーはトンネルについて知る必要がないため、「FTP over SSH」のライブラリはおそらく見つからないでしょう。ポートを開いて、トンネルを使用しない場合と同じようにデータを転送するだけです。
ところで、もう 1 つのオプションは、.NET でサポートされているFTP over SSL (FTPS)かもしれません。( http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.enablessl.aspxを参照してください。)
基本的に、次のファイル転送プロトコルがあります。
FTP – 1970 年代から存在する単純な古い FTP プロトコル。頭字語は「ファイル転送プロトコル」の略です。通常、TCP ポート 21 で実行されます。
SFTP – もう 1 つの完全に異なるファイル転送プロトコルで、FTP とは何の関係もありません。SFTP は、通常は TCP ポート 22 で SSH セッションを介して実行されます。1990 年代後半から使用されています。頭字語は、実際には「SSH File Transfer Protocol」の略です。
FTP over SSH - 1) 可能ですが、SSH チャネルを介してトンネリングされた FTP プロトコルの非常にまれな例 2) SFTP という名前が正しくない
(詳細については、Rebex の「Secure FTP、FTP/SSL、SFTP、FTPS、FTP、SCP... What's the difference?」ページを参照してください)
免責事項: 私は Rebex で働いています
SFTP は、実際には SSH で実行される別のプロトコルです。必要に応じて、SSH の拡張機能です。FTP を SSH でトンネリングするよりも、SFTP を使用する傾向があります。
.NET での包括的な SFTP サポートについては、edtFTPnet/PROを試してください。多くの異なる SFTP サーバーをサポートするようになってから長い間使用されてきました。
SFTP は独自のプロトコルです。FTP over SSH は、SSH 経由で接続すると FTP を使用します。
FTP over SSH は、SSH を介してトンネリングされるプレーンな FTP プロトコルです。SFTP は SSH によって提供されるファイル転送メカニズムであり、まったく異なるプロトコルです。FTP over SSH を使っている人を見たことがありません。
.NET SFTP Libraryを作成しました。その過程で学んだことの 1 つは、FTP と SFTP の違いです。実際には、FTP サーバーではなく SSH サーバーと通信しています。プロトコルだけでなく、SSH サーバーに送信するコマンドもまったく異なります。
ここに私のライブラリへのリンクがあります。