com.jcraft.jsch.JSchException:com.jcraft.jsch.Session.receive_kexinit(未知来源)的算法协商失败

时间:2015-04-14 09:03:13

标签: java algorithm jsch

我正在尝试连接到我的一个unix服务器,但它因上述错误而失败,有人可以帮忙。

JSch jsch = new JSch();

java.util.Properties configuration = new java.util.Properties();
configuration.put("kex", "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");
configuration.put("StrictHostKeyChecking", "no");

Session session=jsch.getSession(user, host, 22);
session.setPassword(password);

session.setConfig(configuration);
session.connect();

2 个答案:

答案 0 :(得分:1)

我找到了解决方法,我刚刚在/ etc / sshd_config中添加了所有这些算法--KexAlgorithms diffie-hellman-group14-sha1然后重新启动!

我刚刚在这里发布了

http://77-thoughts.com/com-jcraft-jsch-jschexception-algorithm-negotiation-fail-at-com-jcraft-jsch-session-receive_kexinitunknown-source/

答案 1 :(得分:-1)

每次都可能无法更改目标服务器上的某些设置。 我在“com.jcraft.jsch_0.1.27.jar”中遇到了类似的问题,但在尝试使用最新版本,即“jsch-0.1.54.jar”后,我没有遇到过这个问题。

此SFTP也可能以交互模式打开,即要求输入用户名和密码,对于这些情况,需要按Enter键才能继续。以下是解决方案:

config.put("PreferredAuthentications", "publickey,keyboard-interactive,password");
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);