C#SSHファイル転送プロトコル(SFTP)でSFTPクライアントを探しているときに、これら2つの適切なプロジェクト( one と two )に出会いました。
基本を理解しようとすると、この混乱に遭遇しました Wikipediaの記事 。 SFTPとFTP over SSHの違いは何ですか?異なる場合、「FTP over SSH」をサポートするライブラリはないようです。
違いは次のとおりです。
通常、「FTP over SSH」のライブラリは見つかりません。通常、トンネルはSSHコマンドを実行して設定され、一度設定されると、クライアントとサーバーはトンネルについて知る必要がないためです。トンネルを使用せずに、ポートを開いてデータを転送するだけです。
ところで、さらにもう1つのオプションは、 FTP over SSL(FTPS) です。これは.NETでサポートされています。 ( http://msdn.Microsoft.com/en-us/library/system.net.ftpwebrequest.enablessl.aspx を参照してください。)
基本的に、次のファイル転送プロトコルがあります。
FTP – 1970年代から存在していた単純な古いFTPプロトコル。頭字語は「ファイル転送プロトコル」の略です。通常、TCP port 21。
SFTP – FTPとはまったく関係のない、まったく別のファイル転送プロトコル。 SFTPは、通常TCPポート22でSSHセッションを介して実行されます。1990年代後半から使用されています。頭字語は、実際には「SSH File Transfer Protocol」の略です。
FTP over SSH-1)可能ですが、SSHチャネルを介してトンネリングされるFTPプロトコルの非常にまれな例2)SFTPという誤った名前
(詳細については、「 セキュアFTP、FTP/SSL、SFTP、FTPS、FTP、SCP ...違いは何ですか?Rebex のページ」を参照してください。
免責事項:私はRebexで働いています
SFTPは、実際にはSSHで実行される別のプロトコルです-必要に応じてSSHの拡張機能です。 SSHを介したFTPのトンネリングではなく、SFTPを使用する傾向があります。
.NETでの包括的なSFTPサポートについては、 edtFTPnet/PRO を試してください。さまざまなSFTPサーバーをサポートするようになってから、かなりの時間が経ちました。
FTP over SSHは、SSHを介してトンネリングされる単純なFTPプロトコルです。 SFTPは、SSHが提供するファイル転送メカニズムであり、完全に異なるプロトコルです。 FTP over SSHを使用している人は誰もいません。
SFTPは独自のプロトコルです。 SSH over FTPは、SSH経由で接続するとFTPを使用します。
認証には、SFTPはSSHキーを使用し、FTPSはX.509証明書を使用します。
私は何年もSharpSSHを使用してきましたが、それは非常にうまく機能します。しばらく開発されていませんが、ソースコードは理解しやすく、使いやすいです。私は問題なく自分のプロジェクトのために微調整し、再コンパイルしましたが、それを必要とせずにそのままうまく動作します。
特別なことをする必要がない場合は、PuTTYのPSFTP.EXEクライアント用の独自の.NETラッパーを非常に最小限のコードで作成することもできます。
私はGreg FinzerのSFTPライブラリを使用したことがありませんが、個人的に彼を知っており、積極的に開発された堅牢なものが必要な場合、彼は高品質の製品を持っていると強く信じています。しかし、単純なものについては、私が言及した無料のオプションで大成功を収めました。