SFTP-Bibliotheken für .NET [geschlossen]


109

Kann jemand eine gute SFTP-Bibliothek empfehlen? Im Moment schaue ich mir Produkte wie SecureBlackbox, IPWorks SSH, WodSFTP und Rebex SFTP an. Ich habe jedoch noch nie eine SFTP-Bibliothek verwendet, daher bin ich mir nicht sicher, wonach ich suche.

Wenn jemand diese schon einmal benutzt hat, gibt es einen Grund, warum ich mit Produkt "X" über "Y" gehen sollte?



Gibt es eine unter MIT lizenzierte SFTP-Bibliothek?
Yash Saraiya

Sie können die detaillierte Überprüfung für SFTP-Komponente für NET thedownloadplanet.com/reviews/…
alexanoid

Antworten:


87

Ich habe mich umgesehen und das gefunden diese Gabel von SharpSSHund SSH.NET sind die aktuellsten und am besten gewarteten Bibliotheken für die SFTP- Kommunikation (nicht zu verwechseln mit FTPS ) in .NET. SSH.NET ist eine saubere .NET 4.0-Implementierung des SFTP-Protokolls, und ich habe es in einigen Lösungen mit Bravour und großem Erfolg verwendet.

Das Original SharpSsh scheint tot zu sein und die meisten anderen Lösungen erfordern entweder die Installation von ausführbaren Windows-Dateien oder eine Menge Geld (oder schlimmer noch beides).


6
Ich habe auch SSH.NET ( sshnet.codeplex.com ) verwendet und fand es ausgezeichnet.
Alex

10
Ich fand, dass SSH.NET von Anfang an fehlerhaft war. Wenn nach Datei / Verzeichnis gesucht wird, wird immer true zurückgegeben. Die vielen offenen und positiv bewerteten Probleme in der Problemliste haben mich vom Projekt ausgeschlossen.
Ronnie Overby

1
@RonnieOverby Ich habe nach dem Problem gesucht, das Sie in Bezug auf Datei / Verzeichnis erwähnt haben, und das Problem existiert nicht mehr. Ich habe Code zum Testen von SSH.NET geschrieben und es funktioniert wie erwartet.
Colin

4
Die SharpSSH-Gabel ist ebenfalls tot (zuletzt aktualisiert im September 2012).
Martin Prikryl

3
Vielen Dank, nach dem Vergleich scheint SSH.NET sauberer und einfacher zu bedienen zu sein. Ich werde meine Antwort aktualisieren, nachdem ich das Projekt abgeschlossen habe, in dem ich sie verwende. Danke,
Nour Lababidi

52

Wir verwenden WinSCP. Es ist kostenlos. Es ist keine Bibliothek, verfügt jedoch über eine gut dokumentierte und voll funktionsfähige Befehlszeilenschnittstelle, die Sie mit Process.Start verwenden können.

Update: Mit Version 5.0 verfügt WinSCP über eine .NET-Wrapper-Bibliothek für die Skriptschicht von WinSCP.


1
Sieht für mich ziemlich gut aus: winscp.net/eng/docs/library#example
Jon Cage

4
Ich habe erfolgreich die WinSCP .NET-Assembly (winscpnet.dll) verwendet, einen Wrapper auf der WinSCP-Skriptschnittstelle. Ja, wirklich, es ist gut dokumentiert. Es hat viele Beispiele. Wenn Sie falsche Parameter übergeben, löst der Wrapper eine Ausnahme aus, in der angegeben wird, was falsch ist. Ich brauchte einige Versuche, um die Parameter richtig zu machen, kein Fehler von WinSCP, nur meine Verwechslung zwischen ftps und sftp. Denken Sie auch daran, WinSCP.exe in den Anwendungsordner zu kopieren. oder Sie können Session.ExecutablePath festlegen, bevor Sie Session.Open () aufrufen.
Edward

WinSCP ist unter der GPL lizenziert. Gibt es etwas, mit dem ich unter MIT lizenziert arbeiten kann?
Yash Saraiya


1
Nicht gut, Winscp ist an .exe gebunden, was für die Entwicklung mehrerer Plattformen kein Problem ist.
Alwyn

9

Überprüfen Sie dies: http://www.tamirgal.com/home/dev.aspx?Item=sharpSsh

SharpSSH ist eine reine .NET-Implementierung der SSH2-Client-Protokollsuite. Es bietet eine API für die Kommunikation mit SSH-Servern und kann in jede .NET-Anwendung integriert werden.

Die Bibliothek ist ein C # -Port des JSch-Projekts von JCraft Inc. und wird unter einer BSD-Lizenz veröffentlicht.

Mit SharpSSH können Sie Daten lesen / schreiben und Dateien über SSH-Kanäle übertragen, indem Sie eine API verwenden, die der API von JSch ähnelt. Darüber hinaus bietet es einige zusätzliche Wrapper-Klassen, die eine noch einfachere Abstraktion für die SSH-Kommunikation bieten.

SharpSSH-Projektseite bei Source Forge: http://sourceforge.net/projects/sharpssh


9
cooles Zeug, aber seit 2007 nicht mehr aktualisiert, brauche etw für .net 4
Johnny_D

1
Siehe meine Antwort für etwas, das aktualisiert und aktiv gepflegt wird.
Asbjørn Ulsberg

10
Ich habe diese Bibliothek benutzt und empfehle sie nicht. Es hat funktioniert, aber es fühlte sich wie ein unvollständiger Port an: Einige Funktionen fehlten in den Klassen der obersten Ebene (Testen, ob Dateien IIRC vorhanden waren), und ich musste Methoden für private Felder aufrufen, um sie zum Laufen zu bringen. auskommentierte Teile des Java-Codes in der Quelle; Wrapper-Klassen, die nach denen in der Java-Standardbibliothek benannt sind; Java-Redewendungen. Ich habe stattdessen SSH.NET (wie in @ asbjornus Beitrag) mit großem Erfolg verwendet.
Alex

8

Wir haben ein Rebex File Transfer Pack gekauft und alles ist in Ordnung. Die API ist einfach, wir haben keine Probleme mit Kommunikationen, Proxyservern usw.

Aber ich habe keine Chance, es mit einer anderen SFTP / FTPS-Komponente zu vergleichen.


Bitte beachten Sie, dass SFTP und FTPS nicht dasselbe Protokoll sind.
Trent

6

Bitvise hat ein großartiges Produkt namens Tunnelier, das FTP mit SFTP verbinden kann. Sie können dann die Standard-FtpWebRequest in .NET verwenden.

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

Ich teste dies derzeit für meine eigenen Zwecke und werde es mit meinen Ergebnissen aktualisieren.

aktualisieren

Diese Idee ist nicht ideal für unbeaufsichtigte Automatisierung, es sei denn, Sie möchten durch die Rahmen springen und den Client als Dienst oder etwas anderes in Verbindung halten, was ich mithilfe von NSSM erreicht habe .

Ich habe die CLI-Automatisierung mit verschiedenen Clients wie bitvise und winscp.com ausprobiert. Ich habe auch diese .net-Klassenbibliotheken ausprobiert: Winscp, SSH.NET, SharpSSH und den kommerziellen SecureBlackBox-SFTP-Client.

SecureBlackBox hat gut funktioniert, ist aber sehr schwer, kann je nach Lizenz sehr teuer sein und ich war mit der API nicht so einverstanden.

Zweifellos ist Winscp der beste kostenlose SFTP-Client für die .NET-Entwicklung . Ich habe einige Klassen und Erweiterungsmethoden geschrieben, um die Arbeit damit zu vereinfachen: Winscp.Extensions


4

Ich benutze Chilkats native SFTP-Bibliothek ( http://www.chilkatsoft.com/ssh-sftp-component.asp ) seit ein paar Monaten und sie funktioniert hervorragend. Ich habe es in einem nächtlichen Job verwendet, um große Dateien herunterzuladen und eine Authentifizierung mit privatem Schlüssel durchzuführen. Das einzige Problem, das ich hatte, war, dass die 64-Bit-Version unter Windows Server 2008 funktioniert. Ich musste vcredist_x64.exe ( http://www.microsoft.com/download/en/details.aspx?id=14632 ) auf meinem Server installieren .


2
Chilkat ist kein 100% verwalteter Code. Es ist eine native Bibliothek, die in .NET eingeschlossen ist. Als wir diese Bibliothek integriert haben, hat sie den Visual Studio-Webdesigner kaputt gemacht, da VS im 32-Bit-Modus ausgeführt wird. Wir mussten all diese Workarounds zwischen dev und prod (64-Bit) erstellen, damit die richtige DLL verwendet werden kann, was keinen Spaß macht. Für die Problemumgehung
Chris Smith

0

Um eine umfassende SFTP-Unterstützung in .NET zu erhalten, versuchen Sie es mit edtFTPnet / PRO . Es gibt schon lange eine Unterstützung für viele verschiedene SFTP-Server.

Wir verkaufen auch einen SFTP-Server für Windows, CompleteFTP . Dies ist eine kostengünstige Möglichkeit, SFTP-Unterstützung auf Ihrem Windows-Computer zu erhalten. Hat auch FTP und FTPS.


Ich habe die edtFTPnet-Bibliothek für einige Zeit verwendet - funktioniert gut, aber die Dokumentation für die .net-Bindungen ist nicht großartig.
Jon Cage

0

Ich habe IP * Works SSH verwendet und es ist großartig. Einfach einzurichten und zu verwenden. Außerdem ist ihre Unterstützung erstklassig, wenn Sie auf Fragen oder Probleme stoßen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.