Назад | Перейти на главную страницу

SSH Port Forwarding не работает

У меня есть два сервера CentOS 7 (гипервизор и реле для этого сценария). Я хочу подключиться к порту VNC на гипервизоре, который находится за брандмауэром, с помощью Relay с сервером с SSH, открытым для гипервизора.

Прошу гипервизора установить соединение командой:

ssh -N -R 0.0.0.0:5912:127.0.0.1:5912 root@Relay

Как только я это сделаю, я могу подключиться к порту на реле с помощью

telnet localhost:5912 

и получаю ответ: RFB 003.008

Когда я использую telnet, используя назначенный IP-адрес:

telnet 1.2.3.4:5912 

на реле: соединение отклонено

Обратите внимание, что IP 1.2.3.4 - это IP-адрес сетевого адаптера Relay, а не какой-либо IP-адрес с NAT.

Я также не могу подключиться с другого сервера в подсети Relay.

По умолчанию sshd не разрешает удаленный доступ к портам, перенаправленным таким образом. Это задокументировано в ssh(1) справочная страница.

             Specifying a remote bind_address will only succeed if the
             server's GatewayPorts option is enabled (see sshd_config(5)).

Документация для GatewayPorts говорит, что по умолчанию выключено. Поскольку это важно с точки зрения безопасности, это разумное значение по умолчанию. Из sshd_config(5):

     GatewayPorts
             Specifies whether remote hosts are allowed to connect to ports
             forwarded for the client.  By default, sshd(8) binds remote port
             forwardings to the loopback address.  This prevents other remote
             hosts from connecting to forwarded ports.  GatewayPorts can be
             used to specify that sshd should allow remote port forwardings to
             bind to non-loopback addresses, thus allowing other hosts to con‐
             nect.  The argument may be no to force remote port forwardings to
             be available to the local host only, yes to force remote port
             forwardings to bind to the wildcard address, or clientspecified
             to allow the client to select the address to which the forwarding
             is bound.  The default is no.