Перенаправление (туннелирование) портов ssh в Linux

У меня есть конкретный сценарий, который я хочу решить. В настоящее время я подключаюсь к хосту через переадресацию портов:

 laptop -> gateway -> remote_server_1

и другому хосту:

 laptop -> remote_server_2

с входом без пароля, работающим на обоих. Ни один из удаленных серверов не виден внешнему миру. Теперь я запускаю службу на remote_server_2, к которой я хотел бы иметь доступ на remote_server_1. Я предполагаю, что мне нужно настроить обратную переадресацию портов с remote_server_1 на мой ноутбук, а затем на remote_server_2, но я не уверен, как это сделать. Кто-нибудь сталкивался с этой ситуацией раньше?

Изменить: Полное решение на случай, если это понадобится кому-то еще:

mylaptop$ ssh -L 3001:localhost:3000 server_2
server_2$ netcat -l 3000

Затем настройте туннель через шлюз на server_1 :

ssh -t -t -L 3003:server_1:22 gateway

Затем войдите в него с server_1 :

ssh -R 3002:localhost:3001 -p3003 localhost
echo "bar" | nc localhost 3002`

и привет server_2 покажет bar : -)

6
задан tdc 10 November 2011 в 13:31
поделиться