Question

Je ne parviens pas à établir une connexion FTP sécurisé à l'aide SharpSSH. Jusqu'à maintenant, je me sers de l'application en ligne de commande DOS MOVEit librement pour établir la connexion, et il se relie très bien:

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

Cependant, lorsque je tente de faire la même chose avec SharpSSH, je reçois une erreur qui dit soit la connexion a expiré ou que le serveur n'a pas répondu correctement:

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

ou

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

Toute idée de ce que je pourrais faire mal, ou comment je pouvais comprendre ce qui ne?

Notez que je besoin d'une connexion FTP sécurisée, de sorte que les classes .NET ne sont pas une option. Je suis prêt à essayer des alternatives à SharpSSH si elles existent bien.

Était-ce utile?

La solution

vous utilisez Tamir.SharpSsh, qui est une bibliothèque SSH. Cependant, il semble que vous connectez à FTPS (ou FTP / SSL) serveur. Le protocole FTPS est complètement différent et n'a rien commun avec SFTP ni SSH.

Suite page sur notre site Web décrit les différences entre FTP, FTP / SSL, les protocoles FTPS et SFTP: Rebex pack transfert de fichiers composant, qui prend en charge les SFTP et protocoles FTPS (mais il en coûte un peu d'argent contrairement à la SharpSSH).

Connexion au serveur FTP / SSL ressemblerait à ceci:

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

Autres conseils

Une autre alternative (pas non plus gratuit) est edtFTPnet / PRO , une bibliothèque stable, mature qui offre un support complet pour FTPS (et SFTP) dans .NET.

Voici quelques exemples de code pour la connexion:

   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();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top