有人能推荐一个好用的SFTP库吗? 目前我正在研究一些产品,如SecureBlackbox、IPWorks SSH、WodSFTP和Rebex SFTP。 但是,我以前从未使用过任何SFTP库,所以不确定我在寻找什么。
如果有人以前使用过这些库,请问为什么我应该选择“X”而不是“Y”?
有人能推荐一个好用的SFTP库吗? 目前我正在研究一些产品,如SecureBlackbox、IPWorks SSH、WodSFTP和Rebex SFTP。 但是,我以前从未使用过任何SFTP库,所以不确定我在寻找什么。
如果有人以前使用过这些库,请问为什么我应该选择“X”而不是“Y”?
我搜索并发现,这个 SharpSSH 分支和SSH.NET是.NET中最新且维护最好的用于SFTP(不要与FTPS混淆)通信的库。SSH.NET 是 SFTP 协议的干净的 .NET 4.0 实现,并且我已经在一些解决方案中使用它,并取得了非常出色的成功。
原始版 SharpSsh 似乎已经停止更新了,大多数其他解决方案要么需要安装 Windows 可执行文件,要么需要大量资金(或更糟糕的是两者都需要)。
我们使用WinSCP。它是免费的。它不是一个库,但有一个完整的文档和功能齐全的命令行接口可以与Process.Start一起使用。
更新:自v.5.0开始,WinSCP有.NET封装库可用于WinSCP的脚本层。
看看这个:http://www.tamirgal.com/home/dev.aspx?Item=sharpSsh
SharpSSH是SSH2客户端协议套件的纯.NET实现。它提供了一个API,用于与SSH服务器通信,并可以集成到任何.NET应用程序中。
该库是JSch项目从JCraft公司移植到C#的版本,并在BSD风格许可下发布。
SharpSSH允许您使用类似于JSch API的API读/写数据并通过SSH通道传输文件。此外,它还提供了一些额外的包装器类,为SSH通信提供了更简单的抽象。
SharpSSH项目页面: http://sourceforge.net/projects/sharpssh
http://www.bitvise.com/ftp-bridge
我目前正在为自己的目的测试这个,一旦有发现我会进行更新。
这个想法不适合无人值守自动化,除非你想要跳过 hoops 保持客户端连接作为服务或其他什么,我使用 NSSM 实现了这一点。
我尝试过使用各种客户端进行 CLI 自动化,包括 bitvise 和 winscp.com。我还尝试了这些 .net 类库:Winscp、SSH.NET、SharpSSH 和商业 SecureBlackBox SFTP 客户端。
SecureBlackBox 表现不错,但是它非常重量级,根据许可证可能相当昂贵,并且我对其 API 不太满意。
毫无疑问,最好的免费 sftp 客户端是 winscp。我编写了一些类和扩展方法,使得与其一起工作更加容易:Winscp.Extensions
我已经使用过Chilkat原生的SFTP库(http://www.chilkatsoft.com/ssh-sftp-component.asp)几个月了,它运行良好。我在每晚的作业中使用它来下载大文件并进行私钥身份验证。唯一的问题是,在Windows Server 2008上使用64位版本时,我需要在服务器上安装vcredist_x64.exe(http://www.microsoft.com/download/en/details.aspx?id=14632)。
如果您需要.NET中全面的SFTP支持,请尝试edtFTPnet/PRO。它已经存在很长时间,支持许多不同的SFTP服务器。
我们还出售一款适用于Windows的SFTP服务器CompleteFTP,这是在您的Windows机器上获得SFTP支持的廉价方式。同时还具备FTP和FTPS功能。