Использование SSH-туннеля для приема входящих соединений

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

Я работаю на компьютере A. У меня есть SSH-доступ к компьютеру B. Я хочу, чтобы на компьютере B была запущена программа X, которая должна подключаться к порту 40000 на компьютере A. Проблема в том, что к компьютеру B применены драконовские брандмауэры, которые я не использую. Я не хочу изменять. Я хочу использовать свою способность легко подключаться по SSH от компьютера A к компьютеру B, чтобы сделать возможным подключение от B к A.

Это то, что я предполагаю: программа Y, которую я запускаю на компьютере A, которая подключается к компьютеру B по SSH, а затем прослушивает на компьютере B соединения через порт 40000 и перенаправляет их через соединения SSH на порт 40000 на компьютере A. Затем я настраиваю программу X на компьютере B, чтобы попытаться подключиться к порту 40000 на компьютере B, а затем он фактически подключается к порту 40000 на компьютере A.

Существует ли существующий рецепт программы / SSH, который делает это?

1 ответ

Решение

Я думаю, вы ищете опцию -R для ssh:

 -R [bind_address:]port:host:hostport
         Specifies that the given port on the remote (server) host is to be
         forwarded to the given host and port on the local side.  This works
         by allocating a socket to listen to port on the remote side, and
         whenever a connection is made to this port, the connection is for-
         warded over the secure channel, and a connection is made to host
         port hostport from the local machine.
         [...]
Другие вопросы по тегам