Question

Tout en recherchant un client SFTP dans le protocole SFTP (C # SSH), j'ai rencontré ces deux projets appropriés: un et deux .

Tout en essayant de comprendre les bases, je suis tombé sur cette confusion de article de Wikipedia . Quelle est la différence entre SFTP et FTP sur SSH? Aucune bibliothèque ne semble prendre en charge "FTP sur SSH", s'il est différent.

Était-ce utile?

La solution

Voici la différence:

  • SFTP (protocole de transfert de fichiers SSH) est un protocole offrant des fonctionnalités de transfert et de manipulation de fichiers. Il peut fonctionner sur n’importe quel flux de données fiable, mais est généralement utilisé avec SSH
  • " FTP sur SSH " utilise l'ancien protocole FTP classique, mais un tunnel SSH est placé entre le client et le serveur.

Vous ne trouverez probablement pas de bibliothèques pour "FTP sur SSH". parce que généralement le tunnel est configuré en exécutant une commande SSH, et une fois configuré, les clients et les serveurs n'ont pas besoin de connaître le tunnel; ils ouvrent simplement des ports et transfèrent des données comme ils le feraient sans tunnel.

BTW, il existe une autre option pour vous: FTP sur SSL (FTPS) , à savoir pris en charge par .NET. (Voir http://msdn.microsoft.com/fr -us / library / system.net.ftpwebrequest.enablessl.aspx .)

Autres conseils

En gros, il existe les protocoles de transfert de fichiers suivants:

  • FTP - l'ancien protocole FTP simple qui existe depuis les années 1970. L'acronyme signifie "File Transfer Protocol". Il fonctionne généralement sur le port TCP 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 le port TCP 22. Il existe depuis la fin des années 1990. L’acronyme signifie "Protocole de transfert de fichiers SSH".

  • FTP sur SSH - 1) exemple possible, mais extrêmement rare, du protocole FTP mis en tunnel via un canal SSH 2) incorrectement nommé SFTP

(pour plus de détails, reportez-vous à la section 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 réalité un autre protocole fonctionnant sur SSH - une extension de SSH si vous voulez. Les gens ont tendance à utiliser SFTP plutôt que le tunneling FTP sur SSH.

Pour une prise en charge complète de SFTP dans .NET, essayez edtFTPnet / PRO . Cela fait longtemps que nous prenons en charge de nombreux serveurs SFTP.

SFTP est son propre protocole. FTP sur SSH utilise FTP une fois que vous êtes connecté via SSH.

FTP sur SSH est un simple protocole FTP mis en tunnel via SSH. SFTP est le mécanisme de transfert de fichiers proposé par SSH et son protocole est complètement différent. Je n'ai vu personne utiliser FTP sur SSH.

  • SFTP signifie SSH File Transfer Protocol. Ce n'est pas FTP sur SSL ni FTP sur SSH. SFTP est normalisé dans la RFC 4253.
  • FTP signifie File Transfer Protocol (protocole de transfert de fichier), défini par la RFC 959 et ses derniers ajouts. FTP est très populaire mais pas sécurisé. C'est pourquoi FTP sur SSL a été introduit et s'appelle FTPS ou FTP / SSL.

Pour l'authentification, SFTP utilise des clés SSH, tandis que FTPS utilise des certificats X.509.

J'ai utilisé SharpSSH pendant des années et cela fonctionne très bien. Bien qu'il n'ait pas connu de développement depuis un moment, le code source est facile à comprendre et à utiliser. J'ai fait des ajustements et je l'ai recompilé pour mes propres projets sans aucun problème, même si cela fonctionne parfaitement tel quel, sans qu'il soit nécessaire de le faire.

Si vous n'avez rien à faire en matière de fantaisie, 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 dispose d’un produit de qualité si vous avez besoin d’un produit 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.

Je viens de créer une bibliothèque .NET SFTP . Une des choses que j'ai apprises au cours du processus est la différence entre FTP et SFTP. Vous communiquez en fait avec un serveur SSH au lieu d'un serveur FTP. Ce n'est pas seulement le protocole, les commandes sont totalement différentes de celles que vous envoyez au serveur SSH.

Voici un lien vers ma bibliothèque.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top