Использование 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.
[...]