测试连接([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)中来“确保”安全性。