Вопрос или проблема
Я использую машину Windows и подключаюсь к своему удаленному хосту через промежуточный хост с использованием программного обеспечения SSH (в данный момент я использую mobaxterm). Теперь мой процесс входа выглядит следующим образом:
-
Загрузите сессию промежуточного хоста, которую я сохранил в mobaxterm (я настроил IP, порт, имя пользователя и пароль для промежуточного хоста)
-
Теперь я нахожусь на промежуточном хосте. Мне предлагается выбрать группу серверов. Я ввожу заданный номер и нажимаю
Enter
. -
Мне снова предлагается выбрать сервер. Я ввожу другой заданный номер и нажимаю
Enter
. Теперь я на удаленном сервере но с другим именем пользователя. -
Я использую команду
su - $MYUSERNAME
, чтобы переключить учетную запись, и меня просят ввести мой пароль для удаленного хоста. После ввода моего пароля и нажатия наEnter
я, наконец, вхожу в свою учетную запись на удаленном хосте!
Каждый раз, когда я открываю новую сессию в mobaxterm, мне приходится повторять вышеупомянутый процесс, что довольно скучно и утомительно. Есть ли лучшие способы автоматизировать этот процесс, чтобы я мог войти в свою окончательную учетную запись, не вводя эту информацию каждый раз?
Я искал аналогичную проблему и нашел следующую ссылку
Так что вы бы сделали
в “Удаленном хосте” введите jumbserver1 и “Укажите имя пользователя” ваше имя пользователя для входа
а в “выполнить команду”
ssh -A -t jumbserver2 \ssh -A -t myserver
Если вы используете mobaxterm, там есть удобный интерфейс для выбора промежуточных хостов (в их терминологии ‘шлюз’):
Если вы используете openssh, вы можете указать промежуточные хосты в командной строке с помощью:
ssh dest-user@dest-host -J jump-user@jump-host
Ответ или решение
Автоматизация процесса входа на удалённый хост через jump-хост может значительно упростить вашу работу, особенно если вы регулярно выполняете эту процедуру. Ниже приведены несколько методов, которые помогут вам автоматизировать этот процесс, используя MobaXterm и SSH.
1. Использование MobaXterm для настройки переходных хостов
MobaXterm предоставляет удобный графический интерфейс для управления сессиями SSH, в том числе возможность настройки jump-хостов. Чтобы настроить автоматический вход на удалённый хост через jump-хост, следуйте этим шагам:
-
Создание новой SSH-сессии:
- Откройте MobaXterm и создайте новую сессию.
- Выберите "SSH" как тип сессии.
- В поле "Remote host" укажите IP-адрес или доменное имя вашего jump-хоста.
- Введите имя пользователя для доступа к jump-хосту.
-
Настройка перехода через jump-хост:
- В разделе "Advanced SSH settings" найдите опцию "Use a gateway (jump host)" и активируйте её.
- Введите данные вашего jump-хоста, включая имя пользователя для него.
-
Ввод команды для автоматического перехода:
- В поле "Execute command", укажите следующую команду, которая автоматически переключит вас на нужный удалённый хост:
ssh -A -t <username_for_second_host>@<second_host>
- Замените
<username_for_second_host>
и<second_host>
на ваши данные.
- В поле "Execute command", укажите следующую команду, которая автоматически переключит вас на нужный удалённый хост:
-
Сохранение сессии:
- Сохраните сессию, чтобы в будущем иметь возможность быстро подключаться.
2. Использование SSH конфигурационного файла (если применимо)
Если вы предпочитаете использовать командную строку или другие SSH-клиенты, вы можете настроить SSH конфигурационный файл (~/.ssh/config
), который позволит вам установить правила для автоматического подключения через jump-хост.
-
Открытие файла конфигурации SSH:
Если файла нет, создайте его:touch ~/.ssh/config chmod 600 ~/.ssh/config
-
Добавление конфигурации:
Откройте файл в текстовом редакторе и добавьте следующие строки:Host jump-host HostName <IP_or_hostname_of_jump_host> User <username_for_jump_host> Host final-target HostName <IP_or_hostname_of_final_target> User <final_username> ProxyJump jump-host
Это позволяет вам подключаться к
final-target
, используя jump-host без необходимости ручного ввода данных. -
Подключение:
Теперь вы сможете подключаться к вашему удалённому хосту простой командой:ssh final-target
3. Использование ключей SSH для автоматизации
Для дальнейшего упрощения процесса, рекомендуется использовать SSH-ключи, которые позволяют избежать ввода пароля при каждом подключении:
-
Генерация SSH-ключей:
На вашем локальном компьютере выполните команду:ssh-keygen
Следуйте инструкциям и не забывайте указывать пустой пароль для ключа, если хотите избежать подсказок.
-
Добавление публичного ключа на jump-хост и затем на удалённый хост:
Используйте следующую команду для добавления вашего публичного ключа на jump-хост:ssh-copy-id <username>@<jump-host>
После этого выполните аналогичную команду для добавления ключа на удалённый хост через jump-хост.
-
Проверка работоспособности:
Попробуйте подключиться к jump-хосту и далее на удалённый хост, чтобы убедиться, что подключение по ключам работает.
Заключение
Автоматизация входа на удалённый хост через jump-хост может значительно снизить трудозатраты и повысить эффективность вашей работы. Используя возможности MobaXterm или SSH конфигурации, а также внедряя SSH-ключи, вы сможете сократить время на рутинные подключения и сосредоточиться на более важных задачах.