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();
}
Другие вопросы по тегам