У меня проблемы с включением пересылки удаленного порта 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 связан со всеми интерфейсами и должен работать публично, но это не так. Что я сделал не так?

1 ответ1

0

Настройка в sshd_config для разрешения туннелирования - AllowTcpForwarding . Не забудьте перезапустить sshd, чтобы он заработал.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .