En cherchant un client SFTP dans SFTP (C # SSH File Transfer Protocol), je suis tombé sur ces deux projets appropriés - n et deux .
En essayant de comprendre les bases, je suis tombé sur cette confusion article Wikipedia . Quelle est la différence entre SFTP et FTP sur SSH? Aucune bibliothèque ne semble prendre en charge "FTP sur SSH", si elle est différente.
Voici la différence:
Vous ne trouverez probablement pas de bibliothèques pour "FTP sur SSH" car généralement le tunnel est configuré en exécutant une commande SSH, et une fois qu'il est configuré, les clients et les serveurs n'ont pas besoin de connaître le tunnel; ils ouvrent simplement les ports et transfèrent les données comme ils le feraient sans tunnel.
BTW, encore une autre option pour vous pourrait être FTP sur SSL (FTPS) , qui est pris en charge par .NET. (Voir http://msdn.Microsoft.com/en-us/library/system.net.ftpwebrequest.enablessl.aspx .)
Fondamentalement, il existe les protocoles de transfert de fichiers suivants:
FTP - l'ancien protocole FTP qui existe depuis les années 1970. L'acronyme signifie "File Transfer Protocol". Il s'exécute généralement sur TCP port 21.
SFTP - un autre protocole de transfert de fichiers complètement différent qui n'a rien à voir avec FTP. SFTP s'exécute sur une session SSH, généralement sur TCP port 22. Il existe depuis la fin des années 1990. L'acronyme signifie en fait "SSH File Transfer Protocol").
FTP sur SSH - 1) possible, mais exemple extrêmement rare de protocole FTP tunnelé via un canal SSH 2) incorrectement nommé SFTP
(pour plus de détails, voir " FTP sécurisé, FTP/SSL, SFTP, FTPS, FTP, SCP ... Quelle est la différence? " page sur Rebex )
Avertissement: je travaille pour Rebex
SFTP est en fait un autre protocole qui s'exécute sur SSH - une extension de SSH si vous le souhaitez. Les gens ont tendance à utiliser SFTP plutôt que de tunneler FTP sur SSH.
Pour une prise en charge SFTP complète dans .NET, essayez edtFTPnet/PRO . Cela fait longtemps que nous prenons en charge de nombreux serveurs SFTP différents.
FTP sur SSH est un protocole FTP simple tunnelé via SSH. SFTP est le mécanisme de transfert de fichiers proposé par SSH et c'est un protocole complètement différent. Je n'ai vu personne utiliser FTP sur SSH.
SFTP est son propre protocole. FTP sur SSH utilise FTP une fois que vous êtes connecté via SSH.
Pour l'authentification, SFTP utilise des clés SSH, tandis que FTPS utilise des certificats X.509.
J'utilise SharpSSH depuis des années et cela fonctionne très bien. Bien qu'il n'ait pas connu de développement depuis un certain temps, le code source est facile à comprendre et à utiliser. J'ai fait des ajustements et l'ai recompilé sans problème pour mes propres projets, bien que cela fonctionne très bien tel quel sans avoir besoin de tout cela.
Si vous n'avez rien à faire, vous pouvez également écrire votre propre wrapper .NET pour le client PSFTP.EXE de PuTTY avec un code très minimal.
Bien que je n'aie jamais utilisé la bibliothèque SFTP de Greg Finzer, je le connais personnellement et je crois fermement qu'il a un produit de qualité si vous avez besoin de quelque chose de activement développé et robuste. Mais pour les choses simples, j'ai eu beaucoup de succès avec les options gratuites que j'ai mentionnées.