报错信息:
com.jcraft.jsch.JSchException: Algorithm negotiation fail
问题分析:
sshd配置中没有打开支持jsch jar内需求的算法,默认开放的算法在man sshd_config中可以看,可能是sshd的高级版本中默认关闭了部分算法(7.5版本有这个问题)。
hash算法查看:ssh -Q mac
kex算法查看:ssh -Q kex
传输加密算法查看:ssh -Q cipher
上面命令查看到的算法是sshd支持的算法,并不是已经打开的算法
解决方案:
在 /etc/ssh/sshd_config文件的最后添加命令行,打开算法:
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,[email protected]
Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc
重启服务: service sshd restart
问题解决。
原文地址:http://blog.51cto.com/netsyscode/2062456
时间: 2024-10-19 09:58:28