Bibliothèques SFTP pour .NET [fermé]

109

Quelqu'un peut-il recommander une bonne bibliothèque SFTP à utiliser? En ce moment, je regarde des produits tels que SecureBlackbox, IPWorks SSH, WodSFTP et Rebex SFTP. Cependant, je n'ai jamais utilisé de bibliothèque SFTP auparavant, donc je ne suis pas sûr de ce que je recherche.

Si quelqu'un les a déjà utilisés, y a-t-il une raison pour laquelle je devrais utiliser le produit «X» plutôt que «Y»?

Kiquenet
la source
Existe-t-il une bibliothèque SFTP sous licence MIT?
Yash Saraiya le
Vous pouvez consulter la revue détaillée du composant SFTP pour NET thedownloadplanet.com/reviews/…
alexanoid

Réponses:

87

J'ai cherché et j'ai trouvé ça cette fourche de SharpSSHet SSH.NET sont les bibliothèques les plus à jour et les mieux entretenues pour la communication SFTP (à ne pas confondre avec FTPS ) dans .NET. SSH.NET est une implémentation .NET 4.0 propre du protocole SFTP, et je l'ai utilisé dans quelques solutions avec brio et grand succès.

L'original SharpSsh semble être mort et la plupart des autres solutions nécessitent soit l'installation d'exécutables Windows, soit une charge d'argent (ou pire, les deux).

Asbjørn Ulsberg
la source
6
J'ai également utilisé SSH.NET ( sshnet.codeplex.com ) et je l'ai trouvé excellent.
Alex
10
J'ai trouvé que SSH.NET était bogué dès le départ. La vérification de l'existence du fichier / répertoire a toujours renvoyé true. Les nombreux problèmes ouverts et votés dans la liste des problèmes m'ont éloigné du projet.
Ronnie Overby
1
@RonnieOverby J'ai cherché le problème que vous avez mentionné à propos du fichier / dir, et le problème n'existe plus. J'ai écrit du code pour tester SSH.NET et cela fonctionne comme prévu.
Colin
4
La fourche SharpSSH est morte aussi (dernière mise à jour en septembre 2012).
Martin Prikryl
3
Merci, Après les avoir comparés, SSH.NET semble être plus propre et plus facile à utiliser. Je mettrai à jour ma réponse après avoir terminé le projet dans
lequel
52

Nous utilisons WinSCP. C'est gratuit. Ce n'est pas une bibliothèque, mais possède une interface de ligne de commande bien documentée et complète que vous pouvez utiliser avec Process.Start.

Mise à jour: avec la version 5.0, WinSCP dispose d' une bibliothèque de wrapper .NET pour la couche de script de WinSCP.

Jim
la source
1
Cela
Jon Cage
4
J'ai utilisé avec succès l'assemblage WinSCP .NET (winscpnet.dll), wrapper sur l'interface de script WinSCP. Oui, vraiment, c'est bien documenté. Il a de nombreux exemples. Si vous passez des paramètres incorrects, le wrapper lève une exception détaillant ce qui ne va pas. Il m'a fallu quelques essais et erreurs pour obtenir les bons paramètres, pas de faute de WinSCP, juste ma confusion entre ftps et sftp. N'oubliez pas non plus de copier WinSCP.exe dans le dossier bin de l'application; ou vous pouvez définir Session.ExecutablePath avant d'appeler Session.Open ().
Edward
WinSCP est sous licence GPL. Y a-t-il quelque chose avec lequel je peux travailler sous licence MIT?
Yash Saraiya le
1
L' assemblage @YashSaraiya WinSCP .NET est sous licence MPL 2.0 et non GPL.
Martin Prikryl
1
Pas bon, winscp est lié à .exe, ce qui est difficile pour le développement multi-plateforme.
Alwyn
9

Vérifiez ceci: http://www.tamirgal.com/home/dev.aspx?Item=sharpSsh

SharpSSH est une implémentation .NET pure de la suite de protocoles client SSH2. Il fournit une API pour la communication avec les serveurs SSH et peut être intégré à n'importe quelle application .NET.

La bibliothèque est un port C # du projet JSch de JCraft Inc. et est publiée sous licence de style BSD.

SharpSSH vous permet de lire / écrire des données et de transférer des fichiers sur des canaux SSH à l'aide d'une API similaire à l'API de JSch. De plus, il fournit des classes wrapper supplémentaires qui offrent une abstraction encore plus simple pour la communication SSH.

Page du projet SharpSSH sur source forge: http://sourceforge.net/projects/sharpssh

GEOCHET
la source
9
trucs sympas, mais pas mis à jour depuis 2007, besoin de smth pour .net 4
Johnny_D
1
Voir ma réponse pour quelque chose qui est mis à jour et activement maintenu.
Asbjørn Ulsberg
10
J'ai utilisé cette bibliothèque et je ne la recommande pas. Cela fonctionnait, mais cela ressemblait à un portage incomplet: certaines fonctionnalités manquaient dans les classes de niveau supérieur (testant si des fichiers existaient IIRC), et j'ai dû appeler des méthodes sur des champs privés pour les faire fonctionner; morceaux de code Java commentés laissés dans la source; classes wrapper nommées d'après celles de la bibliothèque standard Java; Idiomes Java partout. J'ai utilisé SSH.NET à la place (comme dans le post de @ asbjornu) avec beaucoup de succès.
Alex
8

Nous avons acheté un pack de transfert de fichiers Rebex , et tout va bien. L'API est simple, nous n'avons aucun problème avec les communications, les serveurs proxy etc ...

Mais je n'ai aucune chance de le comparer avec un autre composant SFTP / FTPS.

TcK
la source
Veuillez noter que SFTP et FTPS ne sont pas le même protocole.
Trent
6

Bitvise a un excellent produit appelé Tunnelier qui peut relier FTP à SFTP. Vous pouvez ensuite utiliser le FtpWebRequest standard dans .NET.

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

Je teste actuellement cela pour mes propres besoins et je mettrai à jour mes résultats.

mettre à jour

Cette idée n'est pas idéale pour l'automatisation sans surveillance, à moins que vous ne souhaitiez franchir des obstacles en gardant le client connecté en tant que service ou quelque chose, ce que j'ai accompli en utilisant NSSM .

J'ai essayé l'automatisation CLI avec divers clients, y compris bitvise et winscp.com. J'ai également essayé ces bibliothèques de classes .net: Winscp, SSH.NET, SharpSSH et le client commercial SecureBlackBox SFTP.

SecureBlackBox a bien fonctionné, mais il est très lourd, peut être assez coûteux en fonction de la licence, et je n'étais pas tellement d'accord avec son API.

Winscp est le meilleur client sftp gratuit pour le développement .NET . J'ai écrit quelques classes et méthodes d'extension pour faciliter son utilisation: Winscp.Extensions

Ronnie Overby
la source
4

J'utilise la bibliothèque SFTP native de Chilkat ( http://www.chilkatsoft.com/ssh-sftp-component.asp ) depuis quelques mois maintenant et cela fonctionne très bien. Je l'ai utilisé dans un travail nocturne pour télécharger de gros fichiers et faire une authentification par clé privée. Le seul problème que j'ai eu était de faire fonctionner la version 64 bits sur Windows Server 2008, j'avais besoin d'installer vcredist_x64.exe ( http://www.microsoft.com/download/en/details.aspx?id=14632 ) sur mon serveur .

Rocklan
la source
2
Chilkat n'est pas un code géré à 100%. C'est une bibliothèque native enveloppée dans .NET. Lorsque nous avons incorporé cette bibliothèque, cela a cassé le concepteur Web de Visual Studio car VS fonctionne en mode 32 bits. Nous avons dû créer toutes ces solutions de travail entre le développement et la production (qui est en 64 bits) afin qu'il puisse utiliser la bonne DLL, pas amusant. Le contournement nécessite que le GAC ait à la fois une DLL 32 et 64 bits installée sur les machines cibles: chilkatforum.com/questions/114
Chris Smith
0

Pour une prise en charge complète de SFTP dans .NET, essayez edtFTPnet / PRO . Cela fait longtemps avec la prise en charge de nombreux serveurs SFTP différents.

Nous vendons également un serveur SFTP pour Windows, CompleteFTP , qui est un moyen peu coûteux d'obtenir une prise en charge de SFTP sur votre machine Windows. A également FTP et FTPS.

Bruce Blackshaw
la source
J'ai utilisé la bibliothèque edtFTPnet pendant un certain temps - fonctionne bien mais la documentation pour les liaisons .net n'est pas excellente.
Jon Cage
0

J'ai utilisé IP * Works SSH et c'est génial. Facile à configurer et à utiliser. De plus, leur soutien est de premier ordre lorsque vous rencontrez des questions ou des problèmes.

Briggs
la source