一个服务器OpenSSH_7.4p1想要链接另一个服务器OpenSSH_8.8p1,报错com.jcraft.jsch.JSchException: Algorithm negotiation fail
修改 SSH 配置:
- 在 OpenSSH 8.8p1 服务器上,编辑
/etc/ssh/sshd_config
文件,添加或修改以下行以允许旧算法:
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc
sudo systemctl restart sshd
在java后端使用JSch时加上:
jsch.setConfig("kex", "diffie-hellman-group1-sha1");
JSch jsch = new JSch();
jsch.setConfig("kex", "diffie-hellman-group1-sha1");
com.jcraft.jsch.Session sshSession = jsch.getSession(gsmaConfig.getZWSC_GEN_USER(), gsmaConfig.getZWSC_GEN_HOST(), 22);
sshSession.setPassword(gsmaConfig.getZWSC_GEN_PASSWORD());
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
sshSession.setConfig(config);