問題描述
我們用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