Вам не хватает опционального bind_address
часть -Р
Спецификация. в ssh
документация (по ссылке Майкрософт) пишет,
По умолчанию прослушивающие сокеты TCP на сервере будут привязаны только к петлевому интерфейсу. Это можно переопределить, указав bind_address
. Пустой bind_address
, или адрес *
, указывает, что удаленный сокет должен прослушивать все интерфейсы. Указание удаленного bind_address
будет успешным только в том случае, если сервер Порты шлюза
опция включена (см. sshd_config(5)).
Вы используете версию параметра с тремя кортежами, но вам нужна версия с четырьмя кортежами:
-R порт:хост:хостпорт
-R [адрес_привязки]:порт:хост:хостпорт
Таким образом, чтобы разрешить кому-либо подключаться к порту прослушивания на удаленном сервере, вам необходимо убедиться, что Порты шлюза
включен в настройках сервера sshd_config
и используйте такой вариант команды:
ssh -R :2222:localhost:22 пользователь @A
Ведущее двоеточие (:
) также подразумевает начальный подстановочный знак звездочки, который разрешает подключения из любого места. Лично я думаю, что эта версия с подстановочным знаком делает более ясным, что написанное сделано намеренно:
ssh -R *:2222:localhost:22 пользователь @A