我们正在使用Mule企业版3.4.1,默认情况下将Jsch 1.42用于SFTP。
我们有2台服务器,说服务器A具有OpenSSH 7.4,服务器B具有OpenSSH 7.5
当尝试对服务器B使用mule sftp选项时,我遇到了不足
com.jcraft.jsch.JSchException: Algorithm negotiation fail
at com.jcraft.jsch.Session.receive_kexinit(Session.java:520)
at com.jcraft.jsch.Session.connect(Session.java:286)
at com.jcraft.jsch.Session.connect(Session.java:150)
我了解这是由于最新版本的OpenSSH中过时的KeyEx算法造成的。我可以在服务器B的sshd_config中看到以下日志
Unable to negotiate with 10.87.26.35 port 54322: no matching key exchange method found.
Their offer: diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1
但是我的问题是,为什么我只在服务器B而不是服务器A上收到此错误。
我能够使用SSH或SFTP通过CLI连接到两个服务器,并验证了受支持的keyEx,这两个服务器具有相同的输出:
$ ssh -Q kex
diffie-hellman-group1-sha1
diffie-hellman-group14-sha1
diffie-hellman-group14-sha256
diffie-hellman-group16-sha512
diffie-hellman-group18-sha512
diffie-hellman-group-exchange-sha1
diffie-hellman-group-exchange-sha256
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
curve25519-sha256
curve25519-sha256@libssh.org
gss-gex-sha1-
gss-group1-sha1-
gss-group14-sha1-
我只是想了解一下,这两台服务器之间我缺少什么区别。