Frage

Ich habe Probleme beim Herstellen einer sicheren FTP-Verbindung mit SharpSSH. Bis jetzt habe ich die DOS-Kommandozeile app MOVEit wurde mit frei, die Verbindung herzustellen, und es schließt fein:

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

Allerdings, wenn ich versuche, die gleiche Sache mit SharpSSH zu tun, erhalte ich einen Fehler, der entweder die Verbindung sagt abgelaufen oder der Server reagiert nicht korrekt:

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

oder

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

Jede Idee, was ich tun könnte falsch, oder wie ich konnte herausfinden, was andernfalls?

Beachten Sie, dass ich eine sichere FTP-Verbindung benötigen, so dass die .NET-Klassen keine Option sind. Ich bin bereit, Alternativen zu versuchen, SharpSSH wenn sie allerdings vorhanden sein.

War es hilfreich?

Lösung

Sie verwenden Tamir.SharpSsh, die eine SSH-Bibliothek ist. Allerdings sieht es aus wie Sie FTPS verbinden (oder FTP / SSL) Server. Die FTPS ist völlig anderes Protokoll und hat nichts gemein mit SFTP noch SSH.

Im Anschluss an Seite auf unserer Website beschreibt die Unterschiede zwischen FTP, FTP / SSL, FTPS und SFTP-Protokollen: Rebex File Transfer-Pack Komponente, die sowohl SFTP unterstützt und FTPS-Protokolle (aber es kostet etwas Geld im Gegensatz zu dem SharpSSH).

Verbindung zum FTP / SSL-Server würde wie folgt aussehen:

' 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)

Andere Tipps

Eine weitere gute Alternative (auch nicht kostenlos) ist edtFTPnet / PRO , eine stabile, ausgereifte Bibliothek, die für FTPS (und SFTP) in .NET volle Unterstützung bietet.

Hier ist ein Beispielcode für den Anschluss:

   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();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top