Jump-Хост(также известный как jump-сервер) является промежуточным хостом или шлюзом SSH для удаленной сети, посредством которого соединение может быть выполнено с другим хостом в несходной зоне безопасности, например, в демилитаризованной зоне (DMZ).
Он соединяет две разнородные зоны безопасности и предлагает контролируемый доступ между ними.
Jump-хост должен быть строго защищен и постоянно контролироваться, особенно когда он охватывает частную сеть и DMZ с серверами, предоставляющими услуги пользователям в Интернете.
Классический сценарий – это подключение с вашего рабочего стола или ноутбука из внутренней сети вашей компании, которая надежно защищена брандмауэрами в DMZ.
Чтобы легко управлять сервером в DMZ, вы можете получить доступ к нему через jump-хост.
В этой статье мы продемонстрируем, как получить доступ к удаленному серверу Linux через jump-хост, а также мы настроим необходимые параметры в ваших конфигурациях клиента SSH для каждого пользователя.
Рассмотрим следующий сценарий.
В приведенном выше сценарии вы хотите подключиться к HOST 2, но вам нужно пройти HOST 1 из-за брандмауэра и прав доступа.
Существует ряд веских причин, по которым нужны jump хосты.
Список динамических Jumphost
Самый простой способ подключения к целевому серверу через jump хост – использовать флаг -J из командной строки.
Это сообщает ssh, чтобы установить соединение с узлом jump, а затем установить переадресацию TCP на целевой сервер, (убедитесь, что у вас есть пароль SSH между машинами).
$ ssh -J host1 host2
Если имена пользователей или порты на машинах различаются, укажите их в терминале, как показано далее
$ ssh -J username@host1:port username@host2:port
Список нескольких Jumphosts
Такой же синтаксис можно использовать для создания переходов по нескольким серверам.
$ ssh -J username@host1:port,username@host2:port username@host3:port
Список статических Jumphost
Static jumphost list означает, что вы знаете jumphost или jumphosts, которые вам нужно подключить к машине.
Поэтому вам нужно добавить следующую статическую jumphost-маршрутизацию в файл ~ /.ssh /config и указать алиасы хоста, как показано ниже:
### First jumphost. Directly reachable Host vps1 HostName vps1.example.org ### Host to jump to via jumphost1.example.org Host contabo HostName contabo.example.org ProxyJump contabo
Теперь попробуйте подключиться к целевому серверу с помощью хоста джамп, как показано ниже:
$ ssh -J vps1 contabo
Второй способ – использовать параметр ProxyCommand для добавления конфигурации jumphost в ваш файл ~ .ssh/config или $HOME/.ssh/config, как показано далее:
В этом примере целевой хост является contabo, а jumphost – vps1.
Host vps1 HostName vps1.example.org IdentifyFile ~/.ssh/vps1.pem User ec2-user Host contabo HostName contabo.example.org IdentifyFile ~/.ssh/contabovps Port 22 User admin Proxy Command ssh -q -W %h:%p vps1
Где команда ProxyCommand ssh -q -W% h:% p vps1, означает запуск ssh в тихом режиме (с использованием -q) и в режиме пересылки stdio (с использованием -W), перенаправление соединения через промежуточный узел (vps1).
Затем попробуйте получить доступ к целевому хосту, как показано ниже:
$ ssh contabo
ProxyCommand – слитно