我有一个应用程序,我使用Renci.SshNet SftpClient通过SSH使用SFTP将文件传输到供应商的服务器。 连接到他们的生产站点时没有问题。 但是,我确实在连接到他们的测试站点时遇到了问题。
使用Renci.SshNet SftpClient,调用永远不会在sftp.Connect()调用之后返回(它甚至不会超时)。
我尝试使用其他工具来调查问题。我尝试使用WinScp,这次我收到一条尝试连接的错误消息。错误是“传入的数据包在解密时出现乱码”。再次尝试连接到他们的生产站点时没有问题。问题是尝试连接到他们的测试站点时。
我遇到了一个有相同问题的帖子,并通过将Blowfish加密算法移动到WinScp设置到顶部https://serverfault.com/questions/548509/putty-incoming-packet-was-garbled-on-decryption来解决它。我试过了,但确实有效。
然后我发现有人使用Renci.SshNet这个帖子,作为他的代码的一部分,他删除了任何不是河豚的加密算法。
我在我的代码中尝试过,然后就可以了。
我的问题是,有人可以帮助我理解为什么这种方法有效。 而且,似乎这可能是一个已知的问题?为什么其他人除了河豚之外都删除所有算法,作为常规代码的一部分?
我还在生产网站上尝试过相同的代码(删除除了河豚之外的加密算法),并且它也能正常工作。
非常感谢 塞西莉亚