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

Обратный туннель SSH из файла конфигурации

Я ищу директиву конфигурации клиента ssh, например LocalForward это работает как -L Параметр CLI но для -R параметр

TL; DR полная информация о проблеме

Данные:

repoServer -> myComputer -> NAT -> stagingServer

У меня есть локальный сервер репозитория git, который не подключен к Интернету, и удаленный промежуточный сервер, на котором я должен развернуть свое репо.

Для этого я подключаюсь к удаленному stagingServer по ssh через обратный сокет.

Текущая конфигурация для мой компьютер:

Файл: ~/.ssh/config

Host StagingServer
  Hostname staging.acme.com
  User username
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_username
  ForwardAgent yes

на котором я бегаю: ssh StagingServer -R 8022:repository.local:22

Текущая конфигурация для stagingServer:

Файл: ~/.ssh/config

Host repository
  Hostname localhost
  User git
  Port 8022
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_deployer

на котором я могу бегать: git clone git@repository:myProject.git

И все работает нормально, но ... наконец

Вопрос:

Можно ли указать в файле конфигурации клиента ssh (~ / .ssh / config), чтобы открыть обратный туннель, чтобы мне не нужно было добавлять -R 8022:repository.local:22

Очевидно, что вы ищете RemoteForward, вы можете найти конкретное в ssh_config Doc ...

Документация: https://linux.die.net/man/5/ssh_config (Найдите RemoteForward). Это говорит само за себя.

RemoteForward

Указывает, что TCP-порт на удаленном компьютере будет перенаправлен по безопасному каналу на указанный хост и порт с локального компьютера. Первым аргументом должен быть порт [bind_address:], а вторым аргументом - host: hostport. Адреса IPv6 можно указать, заключив адреса в квадратные скобки или используя альтернативный синтаксис: порт [bind_address /] и хост / порт хоста. Могут быть указаны множественные переадресации, а дополнительные пересылки могут быть заданы в командной строке. Привилегированные порты могут быть перенаправлены только при входе в систему с правами root на удаленной машине.

Тогда конфигурация для мой компьютер становится:

Файл: ~/.ssh/config

Host StagingServer
  Hostname staging.acme.com
  User username
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_username
  ForwardAgent yes
  RemoteForward 8022 repository.local:22