JSch - Проблемы с session.connect()
В данный момент я работаю над Java-программой для мониторинга наших сценариев UNIX. Проблема в том, что на следующей неделе мы получим новый сервер, и мне придется изменить свою программу, чтобы она могла подключаться к новой машине с помощью JSch. В настоящее время я использую этот способ для подключения к старым серверам:
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-ключи для этого, но проблема все та же, нет трассировки стека, ничего. Вот фактический код, который я пытаюсь запустить:
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");
Решил проблему для меня
1 ответ
Добавление
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
config.put("PreferredAuthentications", "password");
Решил проблему для меня
Этот блок кода для меня, если мы передадим пароль:
test(){
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
JSch jsch = new JSch();
config.put("StrictHostKeyChecking", "no");
config.put("PreferredAuthentications", "publickey,keyboard-interactive,password");
session = jsch.getSession(username, hostip, 22);
session.setPassword(password);
session.setConfig(config);
session.connect();
}