谁能推荐一个好的 SFTP 库来使用?现在,我正在研究 SecureBlackbox、IPWorks SSH、WodSFTP 和 Rebex SFTP 等产品。但是,我以前从未使用过任何 SFTP 库,所以我不确定我在寻找什么。
如果有人以前使用过这些,有什么理由我应该使用产品“X”而不是“Y”?
我四处搜寻,发现SharpSSH 的这个分支和SSH.NET是 .NET 中用于SFTP(不要与FTPS混淆)通信的最新且维护最好的库。SSH.NET 是一个干净的 .NET 4.0 实现的 SFTP 协议,我已经在几个解决方案中使用了它,并取得了巨大的成功。
原本的SharpSSH似乎已经死了,大多数其他解决方案要么需要安装 Windows 可执行文件,要么需要大量现金(或者更糟;两者都有)。
我们使用 WinSCP。免费。它不是一个库,但有一个文档齐全且功能齐全的命令行界面,您可以将其与 Process.Start 一起使用。
更新:在 v.5.0 中,WinSCP为 WinSCP 的脚本层提供了一个 .NET 包装库。
看看这个: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
我们买了一个Rebex文件传输包,一切都很好。API 很简单,我们在通信、代理服务器等方面没有任何问题......
但我没有机会将它与另一个 SFTP/FTPS 组件进行比较。
Bitvise 有一个很棒的产品,叫做 Tunnelier,它可以将 FTP 桥接到 SFTP。然后,您可以在 .NET 中使用标准的 FtpWebRequest。
http://www.bitvise.com/ftp-bridge
我目前正在出于自己的目的对此进行测试,并将根据我的发现进行更新。
这个想法对于无人值守的自动化来说并不理想,除非你想跳过箍,保持客户端作为服务或其他东西连接,我通过使用NSSM实现了这一点。
我已经尝试使用包括 bitvise 和 winscp.com 在内的各种客户端进行 CLI 自动化。我还尝试过这些 .net 类库:Winscp、SSH.NET、SharpSSH 和商业 SecureBlackBox SFTP 客户端。
SecureBlackBox 运行良好,但它非常重量级,根据许可可能相当昂贵,而且我不太同意它的 API。
毫无疑问,用于 .NET 开发的最佳免费 sftp 客户端是winscp。我编写了一些类和扩展方法以使其更容易使用:Winscp.Extensions
几个月来,我一直在使用 Chilkat 的本地 SFTP 库 ( http://www.chilkatsoft.com/ssh-sftp-component.asp ),它运行良好。一直在夜间工作中使用它来下载大文件并进行私钥身份验证。我唯一的问题是让 64 位版本在 Windows Server 2008 上运行,我需要在我的服务器上安装 vcredist_x64.exe ( http://www.microsoft.com/download/en/details.aspx?id=14632 ) .
我用过 IP*Works SSH,它很棒。易于安装和使用。此外,当您遇到问题或问题时,他们的支持是一流的。
要在 .NET 中获得全面的 SFTP 支持,请尝试edtFTPnet/PRO。支持许多不同的 SFTP 服务器已经存在很长时间了。
我们还销售适用于 Windows 的 SFTP 服务器CompleteFTP,这是一种在 Windows 机器上获得 SFTP 支持的廉价方式。还有FTP和FTPS。