Поиск…


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]


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow