Pregunta

Mientras buscaba un cliente SFTP en C # SSH File Transfer Protocol (SFTP), me encontré con estos dos proyectos adecuados: uno y dos .

Mientras intentaba comprender los conceptos básicos, me encontré con este artículo de Wikipedia . ¿Cuál es la diferencia entre SFTP y FTP sobre SSH? Ninguna biblioteca parece dar soporte para "FTP sobre SSH", si es diferente.

¿Fue útil?

Solución

Aquí está la diferencia:

  • SFTP (protocolo de transferencia de archivos SSH) es un protocolo que proporciona capacidades de transferencia y manipulación de archivos. Puede funcionar sobre cualquier flujo de datos confiable, pero generalmente se usa con SSH
  • " FTP sobre SSH " utiliza el protocolo FTP antiguo normal, pero se coloca un túnel SSH entre el cliente y el servidor.

Probablemente no encontrará bibliotecas para "FTP sobre SSH" porque normalmente el túnel se configura ejecutando un comando SSH, y una vez que se configura, los clientes y servidores no necesitan saber sobre el túnel; simplemente abren puertos y transfieren datos como lo harían sin un túnel.

Por cierto, otra opción para usted podría ser FTP sobre SSL (FTPS) , que es compatible con .NET. (Consulte http://msdn.microsoft.com/en -us / library / system.net.ftpwebrequest.enablessl.aspx .)

Otros consejos

Básicamente, existen los siguientes protocolos de transferencia de archivos:

  • FTP & # 8211; el antiguo y simple protocolo FTP que ha existido desde la década de 1970. El acrónimo significa "Protocolo de transferencia de archivos". Por lo general, se ejecuta sobre el puerto TCP 21.

  • SFTP & # 8211; otro protocolo de transferencia de archivos completamente diferente que no tiene nada que ver con FTP. SFTP se ejecuta en una sesión SSH, generalmente en el puerto TCP 22. Ha existido desde fines de la década de 1990. El acrónimo en realidad significa "Protocolo de transferencia de archivos SSH".

  • FTP sobre SSH - 1) posible, pero extremadamente raro ejemplo de protocolo FTP tunelizado a través de un canal SSH 2) llamado incorrectamente SFTP

(para más detalles, consulte " FTP seguro, FTP / SSL, SFTP, FTPS, FTP, SCP ... ¿Cuál es la diferencia? " página en Rebex )

Descargo de responsabilidad: trabajo para Rebex

SFTP es en realidad otro protocolo que se ejecuta sobre SSH, una extensión de SSH si lo desea. Las personas tienden a usar SFTP en lugar de hacer un túnel FTP sobre SSH.

Para obtener soporte integral de SFTP en .NET, intente edtFTPnet / PRO . Ha existido desde hace mucho tiempo con soporte para muchos servidores SFTP diferentes.

SFTP es su propio protocolo. FTP sobre SSH está utilizando FTP una vez que está conectado a través de SSH.

FTP sobre SSH es un protocolo FTP simple tunelizado a través de SSH. SFTP es el mecanismo de transferencia de archivos ofrecido por SSH y es un protocolo completamente diferente. No he visto a nadie usando FTP sobre SSH.

  • SFTP significa Protocolo de transferencia de archivos SSH. No es FTP sobre SSL ni FTP sobre SSH. SFTP está estandarizado en RFC 4253.
  • FTP significa Protocolo de transferencia de archivos que se define por RFC 959 y sus últimas adiciones. FTP es muy popular pero no está seguro. Por lo tanto, se introdujo FTP sobre SSL y se llama FTPS o FTP / SSL.

Para la autenticación SFTP use claves SSH, mientras que FTPS usa certificados X.509.

He usado SharpSSH durante años y funciona muy bien. Aunque no ha visto ningún desarrollo en un tiempo, el código fuente es fácil de entender y trabajar. Hice ajustes y lo volví a compilar para mis propios proyectos sin problemas, aunque funciona bien tal cual, sin necesidad de nada de eso.

Si no necesita hacer nada elegante, también puede escribir su propio contenedor .NET para el cliente PSFTP.EXE de PuTTY con un código muy mínimo.

Aunque nunca he usado la biblioteca SFTP de Greg Finzer, lo conozco personalmente y creo firmemente que tiene un producto de calidad si necesita algo desarrollado activamente y robusto. Pero por lo simple, he tenido un gran éxito con las opciones gratuitas que mencioné.

Acabo de crear una .NET SFTP Library . Una de las cosas que aprendí en el proceso es cuán diferente es FTP a SFTP. En realidad, se está comunicando con un servidor SSH en lugar de un servidor FTP. No es solo el protocolo, los comandos son totalmente diferentes que está enviando al servidor SSH.

Aquí hay un enlace a mi biblioteca.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top