有人能解释一下这个错误是什么吗?

有人能解释一下这个错误是什么吗?

测试连接([Triatin_SALESBANK_SFTP_Receive_Triatin],[SFTP Receive])失败,消息为:
无法通过 SOCKS 代理 [172.22.144.141:5,002] 登录 [用户:****] 到目标服务器 [***********:22],错误原因:无法协商传输组件 [diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1] [[电子邮件保护],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1] [未知原因]

Mike 的帖子后进行编辑:

客户要求我们更改为 SHA1。我们现在没有选择。我尝试使用 Filezilla 和 Cerberus。但我没有得到任何更改为 SHA1 的选项。您能帮我解决这个问题吗?

答案1

如果不知道您使用的是什么 FTP 客户端和服务器软件,并且没有看到双方的日志,就很难确定,但我可以猜测一下。

在 SSL/TLS 中,客户端必须与服务器“协商”使用哪种加密密码来加密会话。客户端和服务器都有一个他们支持的密码列表,他们“协商”确定一个他们都支持的密码。我猜这就是它的意思:

无法协商传输组件

我猜测第一个密码列表是客户端想要使用的密码:

[diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1]

第二个是服务器想要使用的:

[[电子邮件保护],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1]

请注意,这两个列表之间没有共同的密码。

简而言之:您的客户端配置为使用旧哈希sha1,而服务器已更新为仅接受较新的哈希sha2/sha256。解决方案是更改客户端上的 SSL/TLS 配置以使用较新的密码之一sha2/sha256

答案2

如果我正确读取了您的日志,客户端会尝试建立 SFTP 连接,而不是 FTPS。

测试连接([Triatin_SALESBANK_安全FTP_Receive_Triatin]、[SFTP 接收])失败,并显示消息:无法将 [用户:****] 登录到目标服务器 [***********:22]

SFTP 不是通过 SSH 隧道传输的 FTP,而是 SSH 套件的一部分,是一种独特的文件传输协议。

另一方面,带有 SSL/TLS 的 FTP 是 FTPS。

如果您想纠正客户端和服务器之间的协商,您必须指定在它们上使用相同的密码。

当然,如果优先选择 SHA-2 而不是 SHA-1,但如果您想修改服务器上的密码,则必须查看 SSH 流程。

答案3

遇到了类似的问题,不得不在客户端系统上降级 libssl,因为无法在服务器系统上升级 libssl(IP 摄像机 - 寿命终止)。

出于安全原因,不建议降级,我们通过将设备放置在单独的网络(VLAN)中来“确保”安全性。

相关内容