Secure Shell
Обратные туннели
Поиск…
OpenSSH
Создание обратного туннеля ssh принимает только один ключ -R в исходную команду.
Командная строка
Предположим, вы подключаетесь к example.com в качестве guest пользователя, используя команду ssh [email protected] . Открытие обратного туннеля может выглядеть так:
ssh -R 2222:localhost:22 [email protected]
Он откроет порт 2222 на удаленном сервере (только loopback-интерфейс), и каждое подключение к этому порту будет перенаправлено на ваш локальный компьютер ssh-сервер (порт 22 ).
Это также предполагает, что вы разрешили опции AllowTcpForwarding yes и PermitOpen any в вашем sshd_config на вашем сервере. В противном случае сбой произойдет с ошибкой
open failed: administratively prohibited: open failed
Если вы хотите, чтобы переадресованный порт был доступен на других сетевых адресах (чем localhost ), вам необходимо дополнительно разрешить GatewayPorts yes и использовать IP-адрес или имя хоста или IP-адрес:
ssh -R 2222:example.com:22 [email protected]
конфигурация
Кроме того, вы можете указать перенаправление удаленных портов в ~/.ssh/config чтобы избежать ввода одной и той же строки при каждом подключении. Хорошая практика может заключаться в том, чтобы настроить также псевдоним для хоста, который будет иметь эту переадресацию, если вы часто подключаетесь к хосту и не хотите инициировать переадресацию портов каждый раз:
Host example.com-R
Hostname example.com
User guest
RemoteForward 2222 localhost:22
а затем создать удаленный перенос портов, просто используя ssh example.com-R
Запуск в фоновом режиме
Переадресацию портов можно просто запустить в фоновом режиме с помощью переключателей -N (не запускать удаленную команду, только переадресацию), -f (перейти к фону после аутентификации), -T (отключить удаленное выделение TTY). Объединяя все это:
ssh -NTfR 2222:localhost:22 [email protected]