Bibliotecas SFTP para .NET

¿Alguien puede recomendar una buena biblioteca de SFTP para usar? En este momento estoy viendo productos como SecureBlackbox, IPWorks SSH, WodSFTP y Rebex SFTP. Sin embargo, nunca he usado ninguna biblioteca de SFTP, así que no estoy seguro de lo que estoy buscando.

Si alguien ha usado estos antes, ¿hay alguna razón por la que debería ir con el producto “X” sobre “Y”?

He buscado y he descubierto que este fork de SharpSSH y 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 de .NET 4.0 del protocolo SFTP, y lo he usado en un par de soluciones con gran éxito y gran éxito.

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

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

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

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

SharpSSH es una implementación pura de .NET 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 lanzó bajo licencia de estilo BSD.

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

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

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

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

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é con mis hallazgos.

actualizar

Esta idea no es ideal para la automatización desatendida, a menos que desee pasar de largo manteniendo el cliente conectado como un servicio o algo así, lo que logré utilizando NSSM .

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

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

Indiscutiblemente, el mejor cliente de 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

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 usado en un trabajo nocturno para descargar archivos de gran tamaño y autenticar la clave privada. El único problema que tuve fue que la versión de 64 bits funcionara en Windows Server 2008, necesité instalar vcredist_x64.exe ( http://www.microsoft.com/download/en/details.aspx?id=14632 ) en mi servidor .

Para obtener compatibilidad completa con SFTP en .NET, pruebe edtFTPnet / PRO . Ha sido durante mucho tiempo compatible con 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 con Windows. También tiene FTP y FTPS.

He usado IP * Works SSH y es genial. Fácil de configurar y utilizar. Además, su apoyo es de primera cuando te encuentras con preguntas o problemas.