Я хочу создать соединение из системы Windows с машиной Linux, которая использует пароль аутентификации токена RSA для аутентификации, и я хочу запускать команды оболочки и получать выходные данные из кода Java. При входе в систему Linux с использованием putty необходимо выполнить следующие шаги:
- Введите IP и порт и подключитесь
- Введите имя пользователя в терминале PuTTY, который запрашивает «войти как:»
- Введите PASSCODE, где мы вводим RSA SecurID
Я уже пытался подключиться с помощью пакета Jsch
, и он не подключается. Я также попробовал jcabi-ssh
(http://ssh.jcabi.com/), который является оберткой для Jsch
. Кажется, ни один из них не работает для меня.
РЕДАКТИРОВАТЬ: я использовал следующий код, используя Jsch
пакеты
String host = "xxx";
String user = "xxx";
String password;
Scanner scanner = new Scanner (System.in);
System.out.println("Enter rsa token: ");
password = scanner.nextLine();
Session session = jsch.getSession(user, host, 2222);
session.setPassword(password);
session.connect();
После этого я получаю следующую ошибку:
com.jcraft.jsch.JSchException: UnknownHostKey: myservername. RSA key fingerprint is ba:2b:70:2f:4f:fa:f6:20:31:56:e0:e8:8b:16:46:c9
Я нашел решение, которое кто-то сказал, включив этот фрагмент кода, который устанавливает StrictHostKeyChecking в «нет»:
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
Тогда моя ошибка изменилась на:
com.jcraft.jsch.JSchException: Auth cancel
Попытка использовать другую реализацию jcabi-ssh
дает аналогичные результаты.