Итак, у меня есть настройка сценария для автоматического открытия SSH-соединения с моим сервером и обратного порта, перенаправляющего мне порт для SSH-подключений к моему домашнему рабочему столу. Этот сценарий всегда работал до тех пор, пока я не перенес серверы.
Суть в том, что я не могу привязать это соединение к внешнему IP-адресу, и я не уверен, почему.
Сценарий в основном запускает эту команду (я могу подтвердить, что эта команда с моими вложенными значениями дает тот же результат при запуске из оболочки):
sudo autossh -M 5114 -D 7474 -R servers_public_ip:2695:localhost:22 -i /home/user/.ssh/id_rsa2 remote@servers_public_ip
Когда я проверяю lsof
, Я вижу следующие соединения, привязанные к remote
пользователь:
sshd 27570 remote 3u IPv4 161761 0t0 TCP servers_public_ip:22->67-213-103-227.eastlink.ca:62812 (ESTABLISHED)
sshd 27570 remote 7u IPv6 161773 0t0 TCP ip6-localhost:5114 (LISTEN)
sshd 27570 remote 8u IPv4 161774 0t0 TCP localhost:5114 (LISTEN)
sshd 27570 remote 9u IPv6 161777 0t0 TCP ip6-localhost:2695 (LISTEN)
sshd 27570 remote 10u IPv4 161778 0t0 TCP localhost:2695 (LISTEN)
Ни одна из этих привязок не находится на общедоступном IP-адресе сервера, за исключением моего ssh-соединения с сервером для запуска lsof. Это нормально работало на моем старом сервере. Я проверил sshd_config и включил AllowTcpForwarding
явно. У меня заканчиваются идеи.
Ненавижу, когда это происходит, но после небольшого дополнительного исследования я могу ответить на свой вопрос.
Кажется, что sshd_config
необходимо иметь GatewayPorts yes
привязать к внешним адресам. Я, должно быть, пропустил это при переносе конфигураций.
Чтобы привязать его ко всем интерфейсам, используйте:
ssh -N -R 0.0.0.0:2695:localhost:22 root@example.com
Не забывайте редактировать /etc/ssh/sshd_config
и перейти к GatewayPorts
и включить это и установите его на yes