Обратен тунел SSH од конфигурациска датотека

Барам директива за конфигурирање на клиенти за ssh како LocalForward што работи како параметар -L CLI , но за -R параметар

TL; DR детали за целиот проблем

Податоците :

repoServer -> myComputer -> NAT -> stagingServer

Имам локален сервер за складирање git, кој не е изложен на Интернет и сервер за оддалечена сцена на кој треба да го распоредувам моето репо.

За да го сторам тоа, јас влегувам во далечинскиот управувач на серверот со обратна приклучок. ] myComputer :

File: ~ / .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 / конфигурација

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

на која можам да извршувам : git клон (скриен) сите работи добро, но ... конечно

Прашањето :

Дали е можно да се наведе во конфигурациската датотека на ssh клиентот (~ / .ssh / конфигурација) да се отвори обратен тунел за да не морам да додавам -R 8022: repository.local: 22

0
задан 21 January 2020 в 17:15
2 ответа

Это очевидно для LocalForward, но вы можете найти конкретное в ssh_config Doc ...

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

RemoteForward

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

Host tunnel
  HostName database.example.com
  IdentityFile ~/.ssh/coolio.example.key
  LocalForward 9906 127.0.0.1:3306
  User coolio
0
ответ дан 22 January 2020 в 18:53

Директива RemoteForward - это то, что я искал, в предыдущей консультации с документами я нашел LocalForward и DynamicForward, но не увидел RemoteForward.

Документация: https://linux.die.net/man/5/ssh_config .

RemoteForward

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

Затем конфигурация для myComputer становится следующей:

Файл: ~ / .ssh / config

Host StagingServer
  Hostname staging.acme.com
  User username
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_username
  ForwardAgent yes
  RemoteForward 8022 repository.local:22
0
ответ дан 22 January 2020 в 18:53

Теги

Похожие вопросы