问题描述
我们用jsch包进行ssh登录的时候会报这个错误:
com.jcraft.jsch.JSchException: Algorithm negotiation fail
at com.jcraft.jsch.Session.receive_kexinit(Session.java:583) ~[jsch-0.1.51.jar:na]
at com.jcraft.jsch.Session.connect(Session.java:320) ~[jsch-0.1.51.jar:na]
问题原因
不同的ssh版本,默认采用的密算法不一样。既然没有了原来的一些加密算法,那么久手工添加进去就可以了。
解决方法
1、用root登录服务器
2、在、/etc/ssh/sshd_config文件中最后添加一行:
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
3.重启sshd服务
service sshd restart