телнет через SSH - PullRequest
       7

телнет через SSH

0 голосов
/ 04 ноября 2011

Мне нужно подключить удаленный компьютер через ssh, а затем установить соединение telnet с его портом

(telnet localhost #port)

с JAVA

Я попробовал некоторые библиотеки (sshd, ganymed) и успешно вошел в систему на удаленном компьютере, но не могу войти в telnet.Проблема в том, что библиотеки открывают ssh-соединение и одновременно запускают команду "one" .Однако логин telnet является интерактивным.Он запрашивает имя пользователя, тогда я пишу его в поток (с EOF), но висит там навсегда

Я не могу найти правильный путь для реализации.Любой совет?

(используя Linux)

Ответы [ 3 ]

1 голос
/ 04 ноября 2011

Вы можете попробовать туннелировать telnet через SSH, затем вы можете открыть сеанс telnet на исходном хосте, на котором запущена программа java. Не уверен, если / как вы могли бы сделать это в Java, хотя.

В putty вы можете настроить туннель в connection / ssh / tunnels, там вы можете ввести удаленный порт (например, 23) и локальный неиспользуемый порт (скажем, 2323). Затем вы можете открыть соединение telnet на исходном хосте с номером 2323, которое будет перенаправлено на порт 23 удаленного хоста через ssh.

0 голосов
/ 04 ноября 2011

Я сделал плагин Ganymede SSH-2 для JTA - терминального адаптера Java. Очень просто. Вы можете запустить его самостоятельно, или, если вы свяжетесь со мной из списка, я могу предоставить его вам. Это работает в течение года или около того, очень стабильно.

0 голосов
/ 04 ноября 2011

Разве вы не можете просто вызвать Runtime.exec ("ssh telnet"), который должен привести вас прямо к нужному сеансу telnet. Попробуйте это на оболочке. Runtime.exec () возвращает объект Process , который можно использовать для чтения и записи в результирующий объект Process.

Кроме того, если вы действительно отправляете EOF после имени пользователя, это, вероятно, является причиной ваших проблем. Вы должны отправить CR или CR / LF после имени пользователя.

...