问题发现
一个项目中使用了ganymed-ssh2作为连接linux机器的工具,在开发环境和大多数测试及线上环境运行良好,但某一次测试环境部署后,对应功能被访问后开始出现如下异常:
Caused by: java.io.IOException: There was a problem while talking to 127.0.0.1:22
at ch.ethz.ssh2.Connection.connect(Connection.java:642)
at com.ultrapower.driver.resdriver.transport.SSHProtocol.ini(SSHProtocol.java:94)
… 2 more
Caused by: java.io.IOException: Key exchange was not finished, connection is closed.
at ch.ethz.ssh2.transport.KexManager.getOrWaitForConnectionInfo(KexManager.java:90)
at ch.ethz.ssh2.transport.TransportManager.getConnectionInfo(TransportManager.java:221)
at ch.ethz.ssh2.Connection.connect(Connection.java:603)
… 3 more
Caused by: java.io.IOException: Cannot negotiate, proposals do not match.
at ch.ethz.ssh2.transport.KexManager.handleMessage(KexManager.java:411)
at ch.ethz.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:604)
at ch.ethz.ssh2.transpor

在使用ganymed-ssh2库连接Linux服务器时,遇到连接异常问题,表现为IOException,提示Key exchange未能完成。问题源于MAC算法不匹配。解决方法是在sshd_config配置文件中添加或启用hmac-sha1-96算法,或直接注释掉MACs配置项,从而恢复SSH连接。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



