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

ssh-туннель работает только при входе на прокси-машину

Ubuntu 18, брандмауэр не включен, и я настроил sshd_config, чтобы разрешить пересылку и шлюз:

AllowTcpForwarding yes
GatewayPorts yes 

Если я создам туннель, прослушивающий все порты:

ssh -f -N -L 222:0.0.0.0:22 root@example.com

Это нормально работает, если я вошел на этот компьютер и подключаюсь с помощью localhost:

ssh root@localhost -p 222

Но когда я подключаюсь к прокси-машине с другой машины, соединение не работает:

ssh root@192.168.0.20 -p 222
ssh: connect to host 192.168.0.20 port 222: Connection refused

Что я делаю не так ??

РЕДАКТИРОВАТЬ

# lsof -n -i:222
COMMAND  PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
ssh     4937 root    4u  IPv6 5877871      0t0  TCP [::1]:222 (LISTEN)
ssh     4937 root    5u  IPv4 5877872      0t0  TCP 127.0.0.1:222 (LISTEN)

Даже если я убью исходный процесс и создам новый процесс и укажу IP-адрес, lsof все равно покажет, что он только прослушивает localhost!

ssh -f -N -L 222:192.168.0.20:22 root@example.com

По умолчанию sshd связывает перенаправленные порты с localhost только. Это поведение можно перезаписать, используя подстановочный знак или указав адрес.


Для использования с подстановочным знаком, где :222::22 эквивалентно :222::22

user@client$ ssh -L :222::22 server

Это откроет слушателя на client на port 222 на всех интерфейсах, которые будут перенаправлены на server:22.


Если вы хотите привязать прослушиватель и перенаправленный адрес, вы можете использовать IP-адреса или имена хостов соответствующих хостов.

user@client$ ssh -L client:222:localhost:22 server

Это откроет слушателя на client:22 на IP-адресе, который разрешен client и будут отправлены server к localhost:22.


Другой вариант - использовать GatewayPorts=yes вариант в ssh команда, которая также откроет прослушиватель подстановочных знаков на client.

user@client$ ssh -o GatewayPorts=yes -L 222::22 server

Можно также добавить это в ~/.ssh/config файл, чтобы сделать настройки постоянными для определенного хоста.

Host server
    GatewayPorts yes