0

SharpSSH を使用して安全な FTP 接続を確立できません。これまで、DOS コマンド ライン アプリ MOVEit Freely を使用して接続を確立してきましたが、正常に接続されています。

C:\> ftps -user:ABC -password:123 xxx.xxx.xxx.mil

ただし、SharpSSH で同じことをしようとすると、接続がタイムアウトしたか、サーバーが正しく応答しなかったというエラーが表示されます。

Dim sftp = New Tamir.SharpSsh.Sftp("xxx.xxx.xxx.mil", "ABC", "123")
sftp.Connect()

また

Dim host = New Tamir.SharpSsh.SshStream("xxx.xxx.xxx.mil", "ABC", "123")

何が間違っているのか、または何が失敗しているのかをどのように把握できますか?

安全な FTP 接続が必要なので、.NET クラスはオプションではないことに注意してください。ただし、SharpSSH の代替案が存在する場合は、喜んで試してみたいと思います。

4

2 に答える 2

2

SSHライブラリであるTamir.SharpSshを使用しています。ただし、FTPS(またはFTP / SSL)サーバーに接続しているようです。FTPSは完全に異なるプロトコルであり、SFTPやSSHとは何の共通点もありません。

当社のWebサイトの次のページでは、FTP、FTP / SSL、FTPS、およびSFTPプロトコルの違いについて説明しています:rebex.net/secure-ftp.net/

簡単な要約は次のとおりです。

  • FTPプレーン、古い、安全でないファイル転送プロトコル。ネットワーク経由でクリアテキストのパスワードを転送します。

  • FTPS-FTP over TLS/SSL暗号化チャネル。FTPとFTPSの関係は、HTTPとHTTPSに似ています。

  • FTP/SSL-FTPSと同じ

  • SFTP-SSHファイル転送プロトコル。FTPと共通するものは何もありません(名前を期待してください)。SSH暗号化通信チャネルを介して実行されます。

  • 安全なFTP-SFTPまたはFTPSのいずれかです:-(

SFTPプロトコルとFTPSプロトコルの両方をサポートするRebexFileTransfer Packコンポーネントを試すことができます(ただし、SharpSSHとは異なり、いくらかの費用がかかります)。

FTP/SSLサーバーへの接続は次のようになります。

' Create an instance of the Ftp class. 
Dim ftp As New Ftp()

' Connect securely using explicit SSL. 
' Use the third argument to specify additional SSL parameters. 
ftp.Connect(hostname, 21, Nothing, FtpSecurity.Explicit)

' Connection is protected now, we can log in safely. 
ftp.Login(username, password)
于 2009-05-27T23:55:58.873 に答える
2

もう1つの優れた代替手段(無料ではありません)は、.NETでFTPS(およびSFTP)を完全にサポートする安定した成熟したライブラリであるedtFTPnet/PROです。

接続用のサンプルコードは次のとおりです。

   SecureFTPConnection ftpConnection = new SecureFTPConnection();

   // setting server address and credentials
   ftpConnection.ServerAddress = "xxx.xxx.xxx.mil";
   ftpConnection.UserName = "ABC";
   ftpConnection.Password = "123";

   // select explicit FTPS
   ftpConnection.Protocol = FileTransferProtocol.FTPSExplicit;

   // switch off server validation (only do this when testing)
   ftpConnection.ServerValidation = SecureFTPServerValidationType.None;

   // connect to server
   ftpConnection.Connect();
于 2009-06-04T00:41:31.320 に答える