Я хочу переслать sshd (порт 22) на машине X, которая имеет не маршрутизируемый IP. Возможны следующие варианты пересылки: nc (что ужасно), inetd (требуется privs), iptables (требуется privs) и ssh. Поэтому я использую ssh, который имеет дополнительный бонус в виде предоставления зашифрованного туннеля.
У меня есть машина Y с публичным IP. Я хочу выставить X:22 как Y:8022.
X $ ssh -R8022:localhost:22 Y
Это работает, но порт 8022 связан с обратной связью:
Y $ netstat -ant
. . .
tcp 0 0 127.0.0.1:8022 0.0.0.0:* LISTEN
что означает, что я не могу подключиться с каких-либо посторонних машин. Поскольку GatewayPorts
no
в Y /etc/ssh/sshd_config
, я не могу указать другой адрес привязки. Есть идеи?
Примечание: мне удалось заставить все работать, используя другой туннель от Y до Y:
Y $ ssh -g -L9022:localhost:8022 localhost
Это очень неэффективное решение: оно шифрует / дешифрует на localhost
от порта 9022 до 8022, затем снова шифрует перед отправкой в X. Конечно, должен быть лучший способ?