Categories SSH 2 Comments

Краткое описание: в этом руководстве мы демонстрируем, как использовать команды SSH Proxy Jump и SSH ProxyCommand при подключении к серверу jump.

В нашем предыдущем руководстве о том, как настроить SSH-сервер перехода, мы рассмотрели концепцию хоста Bastion. Хост Bastion или сервер перехода - это промежуточное устройство, к которому сначала подключается SSH-клиент, прежде чем получить доступ к целевой удаленной системе Linux. Сервер SSH Jump действует как шлюз к вашим ИТ-ресурсам, тем самым уменьшая вероятность атаки.

Команды SSH Proxy Jump и Proxy Command определяют, как клиент подключается к удаленному серверу через jump service, jump host или сервер bastion. В этом руководстве подробно рассматриваются SSH Proxy Jump и SSH Proxy Command в Linux.

Cодержание

  • Подключите удаленный Linux с помощью команды SSH Proxy Jump
  • Настройка прокси-серверов в файле ~/.ssh/config
  • Подключите удаленный Linux с помощью команды SSH ProxyCommand
  • Настройка прокси-команды в файле ~/.ssh/config
  • Вывод

Подключите удаленный Linux с помощью команды SSH Proxy Jump

Команда Proxy Jump обозначается флагом -J. Она была введена в OpenSSH server версии 7.3 и помогает вам установить соединение с удаленным объектом, перейдя через сервер bastion или jump server.

Приведенный ниже синтаксис показывает, как используется эта опция: 

$ ssh -J <jump-server> <remote-target>

В случае нескольких серверов bastion или jump синтаксис принимает следующий формат:

$ ssh -J <jump-server-1> <jump-server-2> <remote-target>

В обоих случаях вы будете входить в систему как пользователь root на каждом этапе. Это не идеально по соображениям безопасности, поэтому вы можете захотеть создавать разных пользователей в каждом экземпляре.

Вы можете явно указать разных пользователей и порты SSH, как показано на рисунке.

$ ssh -J <user@jump-host:port> <user@remote-target:port>

Чтобы продемонстрировать флажок перехода прокси-сервера в действии, у нас есть простая настройка, как показано на рисунке.

Jump Server IP: 173.82.232.55 User: james

Remote Target IP: 173.82.227.89 User: tecmint

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

$ ssh -J This email address is being protected from spambots. You need JavaScript enabled to view it. This email address is being protected from spambots. You need JavaScript enabled to view it.

Команда запросит у вас пароль пользователя сервера перехода, за которым последует пароль целевой системы, по которому вам будет предоставлен доступ к целевой системе.

Connect Linux Using Jump Server

Настройка прокси-серверов в файле ~/.ssh/config

Если вы регулярно используете определенный bastion для подключения к определенному удаленному объекту, вы можете добавить следующую конфигурацию перехода через прокси-сервер в файл ~/.ssh/config, чтобы обеспечить бесперебойное подключение. Когда это произойдет, вы пройдете аутентификацию только один раз, и это произойдет только на удаленном целевом объекте.

Host host-jump
User james
Hostname 173.82.232.55

Host host_destination

User tecmint
Hostname 173.82.227.89
Port 22

Используя приведенную выше конфигурацию, вы можете установить соединение с целевым объектом, как показано на рисунке.

$ ssh -J host_destination
SSH to Remote Linux via ProxyJump

Подключите удаленный Linux с помощью команды SSH ProxyCommand

До SSH Proxy Jump ProxyCommand был единственным способом перехода от хостов к удаленной цели. Он работает путем пересылки stdin (стандартный вход) и stdout (стандартный выход) от удаленной цели через сервер перехода или bastion.

Команда Proxy использует следующий синтаксис.

$ ssh -o ProxyCommand="ssh -W %h:%p <jump server>" <remote target>

Здесь -W в аргументах %h:%p перенаправляет стандартный ввод и вывод на удаленный хост (%h) и порт удаленного хоста (%p). Чтобы привести команду в действие, вот как будет выглядеть наша команда

$ ssh -o ProxyCommand="ssh -W %h:%p 173.82.232.55" 173.82.227.89
Connect Linux Using ProxyCommand

Команда настройки прокси-сервера в файле ~/.ssh/config

Конечно, ввод всей команды утомителен и отнимает много времени. Чтобы избежать ввода такой длинной команды, добавьте следующие строки кода в свой файл ~/.ssh/config.

Host host-destination
Hostname 173.82.227.89
ProxyCommand ssh -q -W %h:%p host-jump

Сохраните и выйдите. Теперь все, что вам нужно сделать, это выполнить следующую команду для подключения к удаленному серверу.

$ ssh host-destination

Выводы.  В этом руководстве мы продемонстрировали, как работают команды Proxy Jump и Proxy Command. В целом, Proxy Jump является лучшей альтернативой ProxyCommand и обеспечивает более простой и бесперебойный способ подключения к удаленному объекту через узел jump.

Add comment