У меня проблемы с включением пересылки удаленного порта SSH публично.
На стороне клиента:
ssh -vvv -nNT -p 2222 -R \*:8882:localhost:22 xx@<server_address>
Выход:
...
debug2: мы отправили пакет пароля, ждем ответа
debug1: аутентификация прошла успешно (пароль).
Аутентифицирован на xxx.com ([xxx.xxx.xxx.xxx]: 2222).
debug1: удаленные подключения от *: 8882, перенаправленные на локальный адрес localhost: 22
debug2: настройка fd 3 TCP_NODELAY
debug3: ssh_packet_set_tos: установить IP_TOS 0x10
debug1: запрос no-more-sessions@openssh.com
debug1: вход в интерактивный сеанс.
debug1: успешная удаленная пересылка для: listen *: 8882, connect localhost: 22
debug1: все запросы на удаленную пересылку обработаны
На стороне сервера: (с включенным GatewayPorts, подтверждено с помощью sshd -T
)
netstat -an | grep 8882
Выход:
tcp 0 0 0.0.0.0:8882 0.0.0.0:* LISTEN
tcp6 0 0 :::8882 :::* LISTEN
При подключении к localhost (ssh -p 8882 xx@localhost
) он работает, и я могу войти в оболочку SSH клиента. Тем не менее, ssh
просто зависает и ничего не делает, если я изменяю localhost
на свой локальный ip, или даже 127.0.0.1
, также нет отладочной информации на стороне клиента.
Как видно из вывода netstat
, кажется, что порт 8882
связан со всеми интерфейсами и должен работать публично, но это не так. Что я сделал не так?