Я пытаюсь использовать Jsch для установления соединения SSH в Java. Мой код производит следующее исключение:
com.jcraft.jsch.JSchException: UnknownHostKey: mywebsite.com.
RSA key fingerprint is 22:fb:ee:fe:18:cd:aa:9a:9c:78:89:9f:b4:78:75:b4
Я не могу найти, как проверить, что хост вводит документацию Jsch. Я включал свой код ниже.
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class ssh {
public static void main(String[] arg) {
try {
JSch jsch = new JSch();
//create SSH connection
String host = "mywebsite.com";
String user = "username";
String password = "123456";
Session session = jsch.getSession(user, host, 22);
session.setPassword(password);
session.connect();
} catch(Exception e) {
System.out.println(e);
}
}
}
Я бы тоже:
ssh
из командной строки и примите открытый ключ (хост будет добавлен к ~/.ssh/known_hosts
, и тогда все должно работать нормально из Jsch). -OR-Configure JSch to not use "StrictHostKeyChecking" (это вводит небезопасность и должно использоваться только в тестовых целях), используя следующий код:
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "нет");
session.setConfig(config);
Вариант #1 (добавление хоста в файл ~/.ssh/known_hosts
) имеет мое предпочтение.