5

Я запускаю ssh server -L 3392:192.168.1.138:3389 в одном окне терминала, затем запускаю rdesktop 127.0.0.1:3392 в другом для подключения к машине Windows через туннель SSH. Как я могу объединить это в одну команду, которую я могу запустить из ярлыка Gnome или что-то?

3 ответа3

2

В качестве улучшения вышесказанного вам не нужно убивать SSH PID в конце.

ssh server -fL 3392:192.168.1.138:3389 sleep 5  
rdesktop 127.0.0.1:3392

Сказанное выше скажет ssh запустить sleep 5 на удаленном сервере и перейти в фоновый режим (-f). Это позволит соединению оставаться открытым в течение 5 секунд, что достаточно для запуска команды rdesktop. Переадресация порта останется на месте, пока проходит трафик, поэтому, как только вы выйдете из rdesktop, ssh автоматически прекратит работу.

2

Я предполагаю, что у вас установлен пароль SSH без пароля, чтобы ssh не запрашивал пароль.

Вы можете использовать скрипт bash следующим образом:

#!/bin/bash
ssh server -L 3392:192.168.1.138:3389 -N &
SSH_PID=$!
sleep 5 # wait for the connection to establish
rdesktop 127.0.0.1:3392
kill $SSH_PID

Здесь я делаю предположение, что rdesktop не разветвляется и не возвращается, пока программа не закончится. Если это произойдет, соединение SSH немедленно прекратит работу. Если это так, вам нужно будет следить за запущенными процессами rdesktop, зацикливаться / переходить в спящий режим до тех пор, пока все они не будут отключены, а затем закрывать соединение SSH.

0

Мой "мужчина SSH" говорит:

ssh [a bunch of options] [user@]hostname [command]

Вы можете просто использовать команду, но вы, кажется, используете что-то другое, потому что ваш синтаксис не соответствует моему. В любом случае проверьте в man-странице должно быть что-то, чтобы запустить команду.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .