У меня три компьютера: A, B и C. A инициировал обратный туннель ssh к B.
ssh -nTNx -p 443 -R 22222:localhost:22 [user]@[server]
Если я вхожу в систему B, я могу использовать 'ssh -p 22222 localhost' и получаю запрос на вход для A. Если я попробую 'ssh -p 22222 [общедоступный IP-адрес B]', это не сработает.
Я бы хотел, чтобы C подключился к A без необходимости входить в систему B. Итак, с C я мог бы 'ssh -p 22222 [общедоступный IP-адрес B]', и я бы получил приглашение на вход для A.
Я использую debian и shorewall, и у меня есть базовое представление о том, как все работает. Я пробовал различные комбинации правил REDIRECT и DNAT, но безуспешно. Я пробовал использовать тот же порт (22222) и другой порт (перенаправление 22223 с C на 22222 на локальном хосте).
Любые идеи?
См. «Удаленная переадресация портов для всех на работе!» раздел эта веб-страница. В статье предлагается добавить
GatewayPorts yes
вариант для вашего sshd_config
на вашем HostB. Это должно привести к тому, что перенаправление удаленного порта на вашем HostB будет прослушивать все его сетевые интерфейсы.
Вы пробовали -g
флаг в вашей команде ssh? Это говорит о том, что удаленные системы могут подключаться к локальным портам. Итак, вы бы сделали что-то вроде:
hostB$ ssh -g -L22222:localhost:22 user@hostA
Затем с хоста C это должно работать:
hostC$ ssh -p22222 user@hostB