Как SSH на хост без пароля с помощью Java - PullRequest
0 голосов
/ 29 июля 2010

В настоящее время я использую Java-приложение для запуска команд на Unix-боксе, вызывая экземпляр bash следующим образом -

proc = Runtime.getRuntime().exec("/bin/bash", null, wd);

и Im выполняю команды на этом поле Printwriter следующим образом -

PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(proc.getOutputStream())), true);

Теперь, как требование, мне нужно подключиться по ssh к другому хосту, вызвать экземпляр bash этого хоста и выполнить несколько команд.Если это можно сделать без ввода пароля, было бы здорово.Если нет, то как мне сделать так, чтобы приложение вводило «пароль» в нужное время?Считать вывод команды shh и, основываясь на этом, выписать пароль не кажется привлекательным.

Любые указатели на приведенном выше примере очень помогли бы.

Ответы [ 4 ]

5 голосов
/ 29 июля 2010

Используйте ssh-библиотеку, написанную на Java, вместо выполнения ssh-программы во время выполнения.

1 голос
/ 29 июля 2010

Вы можете использовать SSH-2 для Java , который, кажется, активно поддерживается.

В качестве альтернативы, установите открытый / закрытый ключ для аутентификации без пароля и сохраните закрытый ключ в папке ~ / .ssh пользователя, выполняющего программу java.

0 голосов
/ 08 марта 2011

Вы можете настроить SSH-аутентификацию без пароля.Вот пошаговое руководство по настройке того же самого.http://manjeetdahiya.com/2011/03/03/passwordless-ssh-login/

0 голосов
/ 29 июля 2010

Я не могу представить, как вы собираетесь избегать ввода пароля.Если вы можете войти в систему без ввода пароля, просто сказав ему, что ввод пароля будет неудобен для вас, это скорее разрушит ценность любой защиты.Охранник: «У вас есть удостоверение, которое позволяет вам войти в это здание?»Посетитель: «Да, офицер, но слишком много проблем вытащить из моего кошелька».Охрана: «О, ладно, тогда идите вперёд.»

Вместо того, чтобы исполнять, вы, вероятно, захотите установить соединение через сокет и передавать сообщения туда и обратно без ошибок.Или, как уже отмечали другие, используйте библиотеку, которая работает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...