.NETのSFTPライブラリ[終了]


109

誰でも使用できる優れたSFTPライブラリを推奨できますか?現在、SecureBlackbox、IPWorks SSH、WodSFTP、Rebex SFTPなどの製品を検討しています。ただし、これまでSFTPライブラリを使用したことがないため、何を探しているのかわかりません。

以前にこれらを使用したことがある場合、「Y」よりも「X」の製品を使用する必要がある理由はありますか?



MITでライセンスされているSFTPライブラリはありますか?
Yash Saraiya、2016

回答:


87

探し回ったところ、 SharpSSHのこのフォークSSH.NETは、.NET でのSFTPFTPSと混同しないでください)通信用の最新の最もよく維持されているライブラリです。SSH.NETはSFTPプロトコルのクリーンな.NET 4.0実装であり、色を飛ばして大きな成功を収めたいくつかのソリューションで使用しました。

オリジナル SharpSsh 死んでいるようであり、他のほとんどのソリューションは、Windows実行可能ファイルのインストールまたは現金のバケットロード(またはより悪い;両方)を必要とします。


6
私はSSH.NET(sshnet.codeplex.com)も使用しており、優れていることがわかりました。
Alex

10
SSH.NETはすぐにバグが多いことがわかりました。ファイル/ディレクトリの存在を確認すると、常にtrueが返されます。問題リストにある未解決の賛成多数の問題が原因で、プロジェクトに参加できなくなった
ロニーオーバーバイ2013年

1
@RonnieOverbyファイル/ディレクトリについてあなたが言及した問題が存在するか探しましたが、問題はもう存在していません。SSH.NETをテストするコードを書いたところ、期待どおりに動作しました。
コリン

4
SharpSSHフォークは、(最後の2012年9月更新)あまりにも死んでいます。
Martin Prikryl、2015年

3
それらを比較した後、SSH.NETはよりクリーンで使いやすいようです。私がそれらを使用しているプロジェクトが完了したら、私の回答を更新します。ありがとう
Nour Lababidi

52

WinSCPを使用します。それは無料です。これはライブラリではありませんが、十分に文書化され、フル機能のコマンドラインインターフェイスがあり、Process.Startで使用できます。

更新: v.5.0では、WinSCPにWinSCP のスクリプト層への.NETラッパーライブラリがあります。


1
私にはかなりよく見えます:winscp.net/eng/docs/library#example
Jon Cage

4
WinSCPスクリプトインターフェイスのラッパーであるWinSCP .NETアセンブリ(winscpnet.dll)を正常に使用しました。はい、本当に、それは十分に文書化されています。多くの例があります。不正なパラメーターを渡すと、ラッパーは何が問題かを詳しく説明する例外をスローします。パラメータを正しく設定するには試行錯誤が必要でした。WinSCPの障害ではなく、ftpとsftpの混乱だけでした。また、WinSCP.exeをアプリケーションのbinフォルダーに必ずコピーしてください。または、Session.Open()を呼び出す前にSession.ExecutablePathを設定できます。
エドワード

WinSCPはGPLの下でライセンスされています。MITのもとでライセンスを受けて作業できるものはありますか?
Yash Saraiya、2016


1
残念ながら、winscpは.exeに関連付けられています。これは、マルチプラットフォーム開発にとって危険です。
アルウィン

9

これをチェックしてくださいhttp : //www.tamirgal.com/home/dev.aspx?Item=sharpSsh

SharpSSHは、SSH2クライアントプロトコルスイートの純粋な.NET実装です。SSHサーバーとの通信用のAPIを提供し、任意の.NETアプリケーションに統合できます。

ライブラリはJCraft Inc.のJSchプロジェクトのC#移植であり、BSDスタイルのライセンスの下でリリースされています。

SharpSSHを使用すると、JSchのAPIと同様のAPIを使用して、SSHチャネル経由でデータを読み書きしたりファイルを転送したりできます。さらに、SSH通信の抽象化をさらに簡単にするラッパークラスがいくつか追加されています。

Source ForgeのSharpSSHプロジェクトページ:http ://sourceforge.net/projects/sharpssh


9
かっこいいものですが、2007年以降更新されていないため、.net 4にはsmthが必要です
Johnny_D 2012

1
更新され、積極的に維持されているものについては、私の回答を参照してください。
アスビョルンUlsberg

10
私はこのライブラリを使用しましたが、お勧めしません。それは機能しましたが、それは不完全な移植のように感じられました:トップレベルのクラス(ファイルが存在するかどうかをテストするIIRC)にいくつかの機能が欠けていました。ソースに残されたJavaコードのコメント化されたチャンク。Java標準ライブラリのクラスにちなんで名付けられたラッパークラス。全体にJavaイディオム。代わりに(@asbjornuの投稿のように)SSH.NETを使用して大きな成功を収めました。
アレックス

8

Rebex File Transfer Pack を購入しましたが、すべて問題ありません。APIは簡単です。通信、プロキシサーバーなどに問題はありません。

しかし、他のSFTP / FTPSコンポーネントと比較する機会はありません。


SFTPとFTPSは同じプロトコルではないことに注意してください。
2016

6

Bitviseには、FTPをSFTPにブリッジできるTunnelierと呼ばれる優れた製品があります。その後、.NETで標準のFtpWebRequestを使用できます。

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

私は現在、私自身の目的でこれをテストしており、私の発見で更新します。

更新

あなたは、私が使用して達成サービスか何かのように接続されたクライアント、維持フープを介してジャンプするのでない限り、このアイデアは、無人の自動化のための理想的ではないNSSMを

私は、bitviseやwinscp.comを含むさまざまなクライアントでCLI自動化を試しました。Winscp、SSH.NET、SharpSSH、および商用のSecureBlackBox SFTPクライアントなどの.netクラスライブラリも試しました。

SecureBlackBoxはうまく機能しましたが、非常に重いため、ライセンスによっては非常に高価になる可能性があり、APIについてはあまり同意できませんでした。

.NET開発に最適な無料のsftpクライアントはwinscpです。簡単に操作できるように、いくつかのクラスと拡張メソッドを作成しました:Winscp.Extensions


4

私はChilkatのネイティブSFTPライブラリ(http://www.chilkatsoft.com/ssh-sftp-component.asp)を数か月間使用してきましたが、それはうまく機能しています。大きなファイルをダウンロードして秘密鍵認証を行うために、毎晩のジョブでそれを使用しています。私が抱えていた唯一の問題は、Windowsサーバー2008で64ビットバージョンを動作させることでしたサーバーにvcredist_x64.exe(http://www.microsoft.com/download/en/details.aspx?id=14632)をインストールする必要がありました


2
チルカットは100%マネージドコードではありません。.NETでラップされたネイティブライブラリ。このライブラリを組み込んだとき、VSは32ビットモードで実行されるため、ビジュアルスタジオのWebデザイナーを壊しました。開発者と製品(64ビット)の間でこれらすべての回避策を作成する必要があったので、楽しいではなく、適切なDLLを使用できます。回避策
Chris Smith

0

.NETでの包括的なSFTPサポートについては、edtFTPnet / PROを試してください。長い間、さまざまなSFTPサーバーをサポートしています。

Windows用のSFTPサーバーCompleteFTPも販売しています。これは、お使いのWindowsマシンでSFTPを安価にサポートする方法です。FTPとFTPSもあります。


私はしばらくの間edtFTPnetライブラリを使用してきました-うまく機能しますが、.netバインディングのドキュメントは適切ではありません。
Jon Cage

0

私はIP * Works SSHを使用しましたが、すばらしいです。セットアップと使用が簡単。さらに、質問や問題が発生した場合のサポートも一流です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.