Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于.NET的SFTP库_C#_.net_Sftp - Fatal编程技术网

C# 用于.NET的SFTP库

C# 用于.NET的SFTP库,c#,.net,sftp,C#,.net,Sftp,有人能推荐一个好的SFTP库使用吗?现在,我正在研究SecureBackbox、IPWorks SSH、WodSFTP和Rebex SFTP等产品。然而,我以前从未使用过任何SFTP库,所以我不确定我在寻找什么 如果以前有人用过这些,我为什么要用产品“X”而不是“Y”?我们买了一个文件传输包,一切都很好。API很简单,我们在通信、代理服务器等方面没有任何问题 但我没有机会将其与另一个SFTP/FTPS组件进行比较。请查看以下内容: SharpSSH是一个纯.NET实现 SSH2客户端协议套件的。

有人能推荐一个好的SFTP库使用吗?现在,我正在研究SecureBackbox、IPWorks SSH、WodSFTP和Rebex SFTP等产品。然而,我以前从未使用过任何SFTP库,所以我不确定我在寻找什么

如果以前有人用过这些,我为什么要用产品“X”而不是“Y”?

我们买了一个文件传输包,一切都很好。API很简单,我们在通信、代理服务器等方面没有任何问题

但我没有机会将其与另一个SFTP/FTPS组件进行比较。

请查看以下内容:

SharpSSH是一个纯.NET实现 SSH2客户端协议套件的。信息技术 提供用于与进行通信的API SSH服务器和可集成到 任何.NET应用程序

该库是JSch的一个C#端口 JCraft公司的项目 根据BSD样式许可证发布

SharpSSH允许您读取/写入数据 并通过SSH通道传输文件 使用类似于JSch的API的API。在里面 此外,它还提供了一些额外的功能 提供甚至 SSH的更简单抽象 沟通

source forge上的SharpSSH项目页面:


要在.NET中获得全面的SFTP支持,请尝试。支持许多不同的SFTP服务器已经有很长一段时间了


我们还销售用于Windows的SFTP服务器,这是一种在Windows机器上获得SFTP支持的廉价方法。还有FTP和FTP。

我们使用WinSCP。这是免费的。它不是一个lib,但有一个记录良好、功能齐全的命令行界面,可以与Process.Start一起使用


更新:在v.5.0版本中,WinSCP必须连接到WinSCP的脚本层。

我使用了IP*Works SSH,非常棒。易于设置和使用。另外,当您遇到问题时,他们的支持是一流的。

我已经使用Chilkat的原生SFTP库()几个月了,它工作得很好。在夜间工作中使用它下载大型文件并进行私钥身份验证。我遇到的唯一问题是让64位版本在windows server 2008上工作,我需要在我的服务器上安装vcredit_x64.exe()

Bitvise有一个很棒的产品,名为Tunnelier,它可以将FTP连接到SFTP。然后,您可以使用.NET中的标准FtpWebRequest

我目前正在为自己的目的进行测试,并将根据我的发现进行更新

更新 这种想法对于无人值守的自动化来说并不理想,除非您希望通过服务或其他方式保持客户机的连接,这是我通过使用实现的

我尝试了各种客户端的CLI自动化,包括bitvise和winscp.com。我还尝试了这些.net类库:Winscp、SSH.net、SharpSSH和商用SecureBackbox SFTP客户端

SecureBlackBox工作得很好,但它非常重,根据许可证的不同,可能会非常昂贵,我不太同意它的API


毫无疑问,对于.NET开发来说,最好的免费sftp客户端是。我编写了一些类和扩展方法,使使用它变得更容易:

我四处搜索,发现and是.NET中最新的、维护最好的通信库(不要与之混淆)。SSH.NET是SFTP协议的一个干净的.NET4.0实现,我在几个解决方案中使用了它,取得了巨大成功


最初的解决方案似乎已经过时,大多数其他解决方案要么需要安装Windows可执行文件,要么需要大量现金(或者更糟的是,两者都需要)。

很酷的东西,但自2007年以来一直没有更新过,需要.net 4的smth。请查看我的答案,以了解更新和积极维护的内容。我使用了此库,不推荐它。它工作了,但感觉像一个不完整的端口:顶级类中缺少一些功能(测试文件是否存在IIRC),我必须调用私有字段上的方法才能使它们工作;注释掉源代码中剩余的Java代码块;以Java标准库中的类命名的包装类;Java习语贯穿始终。我改用了SSH.NET(如@asbjornu的帖子中所述)并取得了巨大成功。我还使用了SSH.NET(),并发现它非常优秀。我发现SSH.NET一下子就有问题。检查文件/dir是否存在始终返回true。问题列表中有许多未解决的问题和被否决的问题使我无法参与该项目。@RonnieOverby我查找了您提到的关于file/dir的问题,但该问题已不存在。我编写了测试SSH.NET的代码,它可以正常工作。谢谢,在比较它们之后,SSH.NET看起来更干净,更易于使用。我将在完成我正在使用它们的项目后更新我的答案。谢谢,更新-SSH.NET自2017年以来一直没有更新过,我发现该库无法再使用现代密码连接到SFTP服务器。看起来不错:我成功地使用了WinSCP脚本接口上的包装器WinSCP.NET程序集(winscpnet.dll)。是的,真的,有很好的记录。它有很多例子。如果传入错误的参数,包装器将抛出一个异常,详细说明错误。我花了一些尝试和错误来获得正确的参数,WinSCP没有错误,只是我混淆了ftps和sftp。另外,请记住将WinSCP.exe复制到应用程序bin文件夹;或者,您可以在调用Session.Open()之前设置Session.ExecutablePath。WinSCP是在GPL下授权的。有什么东西我可以在麻省理工学院许可下使用吗?@YashSaraiya,不是GPL。不好,winscp与.exe绑定,对于多平台开发来说,这是一个很棘手的问题。我已经使用edtFTPnet库一段时间了-工作得很好,但是.net绑定的文档不是很好。有可能是MIT授权的SFTP库的副本吗?你可以查看SFTP组件的详细评论,请注意SFTP和FTPS是不同的实际上,SFTP很容易与“HTT”混淆