4

Я играл с идеей иметь SSH Proxy Server или иначе называемый Jump Host, который я использовал бы для подключения ко всем моим "скрытым" серверам. Так что в основном у меня есть следующие настройки. Обратите внимание, что я намеренно использую здесь IP-адреса вместо имени хоста.

<client> ---> <proxy_ssh> ---> <192.168.0.*>

Я намерен сделать его максимально прозрачным для пользователей. Таким образом, в идеале пользователи должны выполнять только следующую команду

# ssh user@192.168.0.10

Чтобы это работало, я создал следующий .ssh/config .

Host *                                                                                                                                                                           
    ServerAliveInterval 240                                                                                                                                                      
    Compression yes                                                                                                                                                              
    ForwardAgent yes                                                                                                                                                             
    ForwardX11 yes                                                                                                                                                               

Host 192.168.0.*                                                                                                                                                                   
    ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p

Это отлично работает. Но это утомительно, если у меня будет больше сетей для работы за моим сервером proxy_ssh . Поэтому я попытался просто добавить ProxyCommand в раздел Host * который не работал.

Я хотел сделать это более прозрачным для конечного пользователя и изменил конфигурацию ssh на следующую, просто опуская конкретное определение хоста.

Host *
    ServerAliveInterval 240                                                                                                                                                      
    Compression yes                                                                                                                                                              
    ForwardAgent yes                                                                                                                                                             
    ForwardX11 yes                                                                                                                                                               
    ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p

Это повлияло на то, что я больше не мог подключаться к конечному узлу. Время соединения истекло!

Поэтому, следовательно, у меня вопрос, есть ли способ сделать это более прозрачным, чтобы все мое SSH-соединение использовало хост proxy_ssh ?

2 ответа2

3

Приведенный выше пример сделает рекурсивным, что каждое соединение будет использовать прокси-команду, которая снова ssh с другой прокси-командой. Хороший способ DOS вашего прокси.

Вы должны исключить прокси из списка, использовать -F /dev/null чтобы игнорировать конфигурацию для команды прокси, или просто игнорировать команду прокси для прокси ssh:

ProxyCommand ssh -oProxyCommand=none my_user@proxy_ssh.example.com netcat -w 120 %h %p
0

Добавьте в конфигурацию запись для хоста перехода, которая переопределяет прокси-команду:

Host proxy_ssh.example.com
  ProxyCommand none

В противном случае он попытается использовать прокси-команду, чтобы добраться до самого хоста перехода.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .