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

Java com.jcraft.jsch.JSchException:com.jcraft.jsch.Session.receive_kexinit上的算法协商失败(未知源),java,algorithm,jsch,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

我正在尝试连接到我的一个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();

不可能每次都更改目标服务器上的某些设置。 我在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); 

我找到了解决方案,我只是在/etc/sshd_配置中添加了所有这些算法-KexAlgorithms diffie-hellman-group14-sha1,然后重新启动!亲爱的OmG,你能帮我理解这个解决方案有什么问题,或者你在这个解决方案中面临什么问题吗?