用于.NET的SFTP库
任何人都可以推荐一个很好的SFTP库使用? 现在我正在查看SecureBlackbox,IPWorks SSH,WodSFTP和Rebex SFTP等产品。 但是,我从来没有使用过任何SFTP库,所以我不知道我在找什么。
如果有人以前用过这些,我有什么理由要把产品“X”放在“Y”上?
谢谢!
我search了四处,发现SharpSSH和SSH.NET的 这个分支是.NET中用于SFTP (不与FTPS混淆)的最新和最好维护的库。 SSH.NET是SFTP协议的一个干净的.NET 4.0实现,我已经在几个解决scheme中使用它,并且色彩丰富,并且取得了巨大的成功。
最初的SharpSsh似乎已经死了,大多数其他解决scheme要么需要安装Windows可执行文件,要么安装一大堆现金(或者更糟糕的是,两者都是)。
我们使用WinSCP。 免费。 它不是一个库,但有一个良好的文档和全function的命令行界面,你可以使用Process.Start。
更新: v5.0,WinSCP有一个.NET包装库到WinSCP的脚本层。
看看这个: http : //www.tamirgal.com/home/dev.aspx?Item=sharpSsh
SharpSSH是SSH2客户端协议套件的纯.NET实现。 它提供了一个用于与SSH服务器通信的API,并且可以集成到任何.NET应用程序中。
该库是JCraft公司的JSch项目的C#端口,并以BSD样式许可证发布。
SharpSSH允许您使用类似于JSch API的API通过SSH通道读取/写入数据和传输文件。 另外,它提供了一些额外的包装类,它们为SSH通信提供了更简单的抽象。
SharpSSH项目页面源码: http : //sourceforge.net/projects/sharpssh
我们买了一个Rebex文件传输包,一切都很好。 API很容易,我们没有任何问题,通讯,代理服务器等…
但我没有机会与另一个SFTP / FTPS组件进行比较。
Bitvise有一个很好的产品叫做Tunnelier,可以将FTP连接到SFTP。 你可以在.NET中使用标准的FtpWebRequest。
http://www.bitvise.com/ftp-bridge
我目前正在testing这个为我自己的目的,并会更新我的发现。
更新
这个想法对于无人值守的自动化来说并不理想,除非你想要让客户端连接成一个服务或者什么东西,这是我使用NSSM完成的。
我已经尝试了各种客户端的CLI自动化,包括bitvise和winscp.com。 我也尝试了这些.net类库:Winscp,SSH.NET,SharpSSH和商业SecureBlackBox SFTP客户端。
SecureBlackBox运行良好,但重量非常大,取决于许可,可能会相当昂贵,而且我不太同意它的API。
放手,.NET开发最好的免费sftp客户端是winscp 。 我已经写了几个类和扩展方法来使它更容易处理: Winscp.Extensions
我已经使用Chilkat的本地SFTP库( http://www.chilkatsoft.com/ssh-sftp-component.asp )几个月了,它的工作很好。 在夜间工作中使用它来下载大文件并进行私钥validation。 唯一的问题是让64位版本在Windows Server 2008上工作,我需要在我的服务器上安装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。
我已经使用IP * Works SSH,这是伟大的。 易于安装和使用。 另外,当您遇到问题或问题时,他们的支持是一stream的。