Bibliotecas SFTP para .NET [cerrado]

109

¿Alguien puede recomendar una buena biblioteca SFTP para usar? Ahora mismo estoy buscando productos como SecureBlackbox, IPWorks SSH, WodSFTP y Rebex SFTP. Sin embargo, nunca antes había usado una biblioteca SFTP, así que no estoy seguro de lo que estoy buscando.

Si alguien los ha usado antes, ¿hay alguna razón por la que deba optar por el producto "X" en lugar de "Y"?

Kiquenet
fuente
¿Existe una biblioteca SFTP con licencia del MIT?
Yash Saraiya
Puede consultar la revisión detallada del componente SFTP para NET thedownloadplanet.com/reviews/…
alexanoid

Respuestas:

87

He buscado alrededor y encontré que esta bifurcación de SharpSSHy SSH.NET son las bibliotecas más actualizadas y mejor mantenidas para la comunicación SFTP (que no debe confundirse con FTPS ) en .NET. SSH.NET es una implementación limpia .NET 4.0 del protocolo SFTP, y lo he usado en un par de soluciones con gran éxito y gran éxito.

El original SharpSsh parece estar muerta y la mayoría de las otras soluciones requieren la instalación de ejecutables de Windows o una gran cantidad de efectivo (o peor, ambos).

Asbjørn Ulsberg
fuente
6
También utilicé SSH.NET ( sshnet.codeplex.com ) y me pareció excelente.
Alex
10
Encontré que SSH.NET tenía errores desde el principio. La comprobación de archivo / directorio siempre devuelve verdadero. Los muchos problemas abiertos y votados en la lista de problemas me alejaron del proyecto.
Ronnie Overby
1
@RonnieOverby Busqué el problema que mencionaste sobre el archivo / directorio, y el problema ya no existe. Escribí código para probar SSH.NET y funciona como se esperaba.
Colin
4
La bifurcación SharpSSH también está muerta (última actualización en septiembre de 2012).
Martin Prikryl
3
Gracias, después de compararlos, SSH.NET parece ser más limpio y más fácil de usar. Actualizaré mi respuesta después de terminar el proyecto en el que los estoy usando. Gracias,
Nour Lababidi
52

Usamos WinSCP. Es gratis. No es una biblioteca, pero tiene una interfaz de línea de comandos bien documentada y con todas las funciones que puede usar con Process.Start.

Actualización: con la versión 5.0, WinSCP tiene una biblioteca contenedora .NET para la capa de scripting de WinSCP.

Jim
fuente
1
Me parece bastante bueno: winscp.net/eng/docs/library#example
Jon Cage
4
Utilicé con éxito el ensamblaje de WinSCP .NET (winscpnet.dll), contenedor en la interfaz de scripting de WinSCP. Sí, de verdad, está bien documentado. Tiene muchos ejemplos. Si pasa parámetros incorrectos, el contenedor lanza una excepción que detalla lo que está mal. Me tomó un poco de prueba y error obtener los parámetros correctos, no fue culpa de WinSCP, solo mi confusión entre ftps y sftp. Además, recuerde copiar WinSCP.exe en la carpeta bin de la aplicación; o puede configurar Session.ExecutablePath antes de llamar a Session.Open ().
Edward
WinSCP tiene licencia GPL. ¿Hay algo con lo que pueda trabajar con licencia del MIT?
Yash Saraiya
1
El ensamblaje de @YashSaraiya WinSCP .NET tiene licencia MPL 2.0 , no GPL.
Martin Prikryl
1
No es bueno, winscp está vinculado a .exe, que es difícil para el desarrollo multiplataforma.
Alwyn
9

Mira esto: http://www.tamirgal.com/home/dev.aspx?Item=sharpSsh

SharpSSH es una implementación de .NET pura del conjunto de protocolos de cliente SSH2. Proporciona una API para la comunicación con servidores SSH y se puede integrar en cualquier aplicación .NET.

La biblioteca es un puerto C # del proyecto JSch de JCraft Inc. y se publica bajo una licencia de estilo BSD.

SharpSSH le permite leer / escribir datos y transferir archivos a través de canales SSH utilizando una API similar a la API de JSch. Además, proporciona algunas clases contenedoras adicionales que ofrecen una abstracción aún más simple para la comunicación SSH.

Página del proyecto SharpSSH en source forge: http://sourceforge.net/projects/sharpssh

GEOCHET
fuente
9
cosas interesantes, pero no se han actualizado desde 2007, se necesita algo para .net 4
Johnny_D
1
Vea mi respuesta para algo que se actualiza y mantiene activamente.
Asbjørn Ulsberg
10
Usé esta biblioteca y no la recomiendo. Funcionó, pero se sintió como un puerto incompleto: faltaban algunas características en las clases de nivel superior (probando si los archivos existían IIRC), y tuve que llamar a métodos en campos privados para que funcionaran; fragmentos comentados de código Java que quedan en la fuente; clases contenedoras con el nombre de las de la biblioteca estándar de Java; Modismos de Java en todas partes. En su lugar, he usado SSH.NET (como en la publicación de @ asbjornu) con gran éxito.
Alex
8

Compramos un paquete de transferencia de archivos Rebex y todo está bien. La API es sencilla, no tenemos ningún problema de comunicaciones, servidores proxy etc ...

Pero no tengo la oportunidad de compararlo con otro componente SFTP / FTPS.

TcKs
fuente
Tenga en cuenta que SFTP y FTPS no son el mismo protocolo.
Trent
6

Bitvise tiene un gran producto llamado Tunnelier que puede conectar FTP a SFTP. A continuación, puede utilizar el estándar FtpWebRequest en .NET.

http://www.bitvise.com/ftp-bridge

Actualmente estoy probando esto para mis propios fines y actualizaré mis hallazgos.

actualizar

Esta idea no es ideal para la automatización desatendida, a menos que desee pasar por obstáculos manteniendo al cliente conectado como un servicio o algo así, lo cual logré usando NSSM .

Probé la automatización CLI con varios clientes, incluidos bitvise y winscp.com. También probé estas bibliotecas de clases .net: Winscp, SSH.NET, SharpSSH y el cliente comercial SFTP SecureBlackBox.

SecureBlackBox funcionó bien, pero es muy pesado, puede ser bastante costoso dependiendo de la licencia, y no estaba de acuerdo con su API.

Sin lugar a dudas, el mejor cliente sftp gratuito para el desarrollo de .NET es winscp . He escrito algunas clases y métodos de extensión para facilitar el trabajo: Winscp.Extensions

Ronnie Overby
fuente
4

He estado usando la biblioteca SFTP nativa de Chilkat ( http://www.chilkatsoft.com/ssh-sftp-component.asp ) durante un par de meses y está funcionando muy bien. Lo he estado usando en un trabajo nocturno para descargar archivos grandes y realizar autenticación de clave privada. El único problema que tuve fue conseguir que la versión de 64 bits funcionara en Windows Server 2008, necesitaba instalar vcredist_x64.exe ( http://www.microsoft.com/download/en/details.aspx?id=14632 ) en mi servidor .

Rocklan
fuente
2
Chilkat no es un código 100% administrado. Es una biblioteca nativa envuelta en .NET. Cuando incorporamos esta biblioteca rompió el diseñador web de Visual Studio porque VS se ejecuta en modo de 32 bits. Tuvimos que crear todas estas soluciones entre dev y prod (que está en 64 bits) para que pueda usar la DLL correcta, no divertida. La solución
Chris Smith
0

Para una compatibilidad completa con SFTP en .NET, pruebe edtFTPnet / PRO . Ha existido durante mucho tiempo con soporte para muchos servidores SFTP diferentes.

También vendemos un servidor SFTP para Windows, CompleteFTP , que es una forma económica de obtener soporte para SFTP en su máquina Windows. También tiene FTP y FTPS.

Bruce Blackshaw
fuente
He usado la biblioteca edtFTPnet durante algún tiempo; funciona bien, pero la documentación para los enlaces .net no es excelente.
Jon Cage
0

He usado IP * Works SSH y es genial. Fácil de configurar y utilizar. Además, su apoyo es de primera categoría cuando tiene preguntas o problemas.

Briggs
fuente