Pregunta

Estoy teniendo problemas para hacer una conexión FTP segura utilizando SharpSSH. Hasta ahora he estado usando la línea de comandos de DOS aplicación MOVEit libremente para hacer la conexión, y se conecta muy bien:

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

Sin embargo, cuando trato de hacer lo mismo con SharpSSH, me sale un error que dice que o bien el tiempo de conexión o el servidor no responde correctamente:

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

o

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

Cualquier idea de lo que podría estar haciendo mal, o cómo podría averiguar lo que está fallando?

Tenga en cuenta que necesito una conexión FTP segura, por lo que las clases .NET no son una opción. Estoy dispuesto a probar alternativas a SharpSSH si es que existen sin embargo.

¿Fue útil?

Solución

está utilizando Tamir.SharpSsh, que es una biblioteca de SSH. Sin embargo, parece que se está conectando a FTPS (o FTP / SSL) del servidor. El FTPS es completamente diferente protocolo y no tiene nada común con SFTP ni SSH.

Después de la página en nuestro sitio web analiza las diferencias entre FTP, FTP / SSL, FTPS y SFTP protocolos: rebex.net/secure-ftp.net/ .

Breve resumen a continuación:

  • llanura FTP,, protocolo de transferencia de archivos inseguros de edad. Transferencias texto claro contraseña a través de la red.

  • FTPS - FTP sobre TLS / SSL cifrada canal. FTP y FTPS relación es similar a HTTP y HTTPS.

  • FTP / SSL - igual que FTPS

  • SFTP - SSH File Transfer Protocol. No tiene nada común con FTP (cuente con el nombre). Corre sobre SSH canal de comunicación cifrada.

  • FTP Secure - podría ser o bien SFTP o FTPS: - (

Puede intentar Rebex componente de transferencia de archivos Paquete , que es compatible con SFTP y protocolos FTPS (pero cuesta un poco de dinero a diferencia de la SharpSSH).

La conexión al servidor / SSL FTP se vería así:

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

Otros consejos

Otra gran alternativa (que tampoco está libre) es edtFTPnet / PRO , una biblioteca estable, madura que ofrece soporte completo para FTPS (y SFTP) en .NET.

A continuación, algunos ejemplos de código para la conexión:

   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();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top