1
目前我正在开发Java程序来监视我们的UNIX脚本。问题是我们下周要购买一台新服务器,并且我必须更改我的程序,以便它可以使用JSch连接到新机器。 目前我使用这种方式去旧服务器的连接:JSch - session.connect()的问题
JSch jsch = new JSch();
session = jsch.getSession(user, host);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.setTimeout(60000);
session.connect();
虽然在新服务器上测试它,我得到了这个问题,将停止在session.connect()
并不会去任何进一步。
经过一些研究后,我发现,我使用的JSch库是从服务器上为新的OpenSSH版本创建的,因此我将我的JSch升级到版本0.1.54,但即使这样也不能解决问题。 实际上,我正在尝试为此使用SSH-Keys,但问题仍然是一样的,没有堆栈跟踪,什么都没有。下面是实际的代码中,我试图让运行:
String private_key = "path_to_file";
jsch.addIdentity(private_key);
session = jsch.getSession(user, host, 22);
session.setTimeout(60000);
session.connect();
键:
SSH-2 RSA
客户:
JRE 1.8.0_112<br>
JSch 0.1.54
服务器:
OpenSSH 7.2p2<br>
OpenSSL 1.0.2g
与服务器上的这个配置它的工作:
的OpenSSH 6.6.1p1
的OpenSSL 1.0.1f
编辑
添加
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
config.put("PreferredAuthentications", "password");
解决了这个问题对我来说
而不是增加在问题的解决增加您的解决方案中的答案,将其标记接受.. – Ali786
谢谢,我会记住我的答案明天,现在不能做到这一点。我将为未来的问题记住这一点。 – StefanPG