Frage

Auf der Suche nach einem SFTP -Client im C# SSH -Dateiübertragungsprotokoll (SFTP) bin ich auf diese beiden geeigneten Projekte gestoßen - - eines und zwei.

Während ich versuchte, die Grundlagen zu verstehen, stieß ich auf diese verwirrende Wikipedia -Artikel. Was ist Unterschied zwischen SFTP und FTP über SSH? Keine Bibliothek scheint "FTP Over SSH" zu unterstützen, wenn sie anders ist.

War es hilfreich?

Lösung

Hier ist der Unterschied:

  • Sftp (SSH -Dateiübertragungsprotokoll) ist ein Protokoll, das Dateiübertragungs- und Manipulationsfunktionen bietet. Es kann über jeden zuverlässigen Datenstrom funktionieren, wird jedoch normalerweise mit SSH verwendet
  • "FTP Over SSH" verwendet das reguläre alte FTP -Protokoll, aber eine SSH -Tunnel wird zwischen Client und Server platziert.

Sie werden wahrscheinlich keine Bibliotheken für "FTP Over SSH" finden, da der Tunnel normalerweise durch Ausführen eines SSH -Befehls eingerichtet wird. Sobald er eingerichtet ist, müssen Clients und Server nichts über den Tunnel wissen. Sie öffnen nur Ports und übertragen Daten so, wie sie es ohne einen Tunnel tun würden.

Übrigens, eine weitere Option für Sie könnte sein FTP über SSL (FTPS), was von .NET unterstützt wird. (Sehen http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.enablessl.aspx.)

Andere Tipps

Grundsätzlich gibt es die folgenden Dateiübertragungsprotokolle um:

  • FTP - Das einfache alte FTP -Protokoll, das es seit den 1970er Jahren gibt. Das Akronym steht für "Dateitransferprotokoll". Es läuft normalerweise über den TCP -Port 21.

  • SFTP - Ein weiteres, völlig anderes Dateiübertragungsprotokoll, das nichts mit FTP zu tun hat. SFTP läuft über eine SSH -Sitzung, normalerweise auf TCP Port 22. Es gibt es seit Ende der neunziger Jahre. Das Akronym steht tatsächlich für "SSH File Transfer Protocol".

  • FTP über SSH - 1) Möglich, aber ein äußerst seltenes Beispiel für FTP -Protokoll -Tunnel durch einen SSH -Kanal 2) fälschlicherweise SFTP genannt

(Einzelheiten siehe "Sichere FTP, FTP/SSL, SFTP, FTPS, FTP, SCP ... Was ist der Unterschied?"Seite at Rebex)

Haftungsausschluss: Ich arbeite für Rebex

SFTP ist tatsächlich ein weiteres Protokoll, das über SSH läuft - eine Erweiterung von SSH, wenn Sie möchten. Menschen neigen dazu, SFTP zu verwenden, anstatt FTP über SSH zu tun.

Für einen umfassenden SFTP -Support in .NET versuchen edtftpnet/pro. Es ist schon lange mit Unterstützung für viele verschiedene SFTP -Server.

SFTP ist sein eigenes Protokoll. FTP über SSH verwendet FTP, sobald Sie über SSH verbunden sind.

FTP über SSH ist einfaches FTP -Protokoll -Tunnel durch SSH. SFTP ist der von SSH angebotene Dateiübertragungsmechanismus und ein völlig anderes Protokoll. Ich habe niemanden gesehen, der FTP über SSH verwendet hat.

  • SFTP steht für das SSH -Dateiübertragungsprotokoll. Es ist nicht FTP über SSL und nicht FTP über SSH. SFTP ist in RFC 4253 standardisiert.
  • FTP steht für Dateiübertragungsprotokoll, das durch RFC 959 und letztere Additionen definiert ist. FTP ist sehr beliebt, aber nicht gesichert. Daher wurde FTP über SSL eingeführt und heißt FTPS oder FTP/SSL.

Verwenden Sie für die Authentifizierung SSH -Tasten, während FTPS X.509 -Zertifikate verwenden.

Ich habe Sharpsssh jahrelang benutzt und es funktioniert großartig. Obwohl es in einer Weile keine Entwicklung mehr zu sehen ist, ist der Quellcode leicht zu verstehen und zu arbeiten. Ich habe es optimiert und es für meine eigenen Projekte ohne Probleme neu zusammengestellt, obwohl es gut funktioniert, ohne dass dies erforderlich ist.

Wenn Sie nichts Besonderes tun müssen, können Sie auch Ihren eigenen .NET -Wrapper für Puttys PSFTP.exe -Client mit sehr minimalem Code schreiben.

Obwohl ich nie die SFTP -Bibliothek von Greg Finzer verwendet habe, kenne ich ihn persönlich und der festen Überzeugung, dass er ein Qualitätsprodukt hat, wenn Sie etwas aktiv entwickelt und Robustes benötigen. Aber für die einfachen Sachen hatte ich große Erfolge mit den kostenlosen Optionen, die ich erwähnt habe.

Ich habe gerade eine erstellt .NET SFTP -Bibliothek. Eines der Dinge, die ich dabei gelernt habe, ist, wie unterschiedlich FTP als SFTP ist. Sie kommunizieren tatsächlich mit einem SSH -Server anstelle eines FTP -Servers. Es ist nicht nur das Protokoll, die Befehle sind völlig anders, als Sie an den SSH -Server senden.

Hier ist ein Verknüpfung zu meiner Bibliothek.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top