Як SSH безпосередньо орієнтуватися через стрибок, використовуючи SSH Config без додаткової команди ssh


14

Якщо я:

ssh -J jumphost.example.com target.example.com

Я в кінцевому підсумку негайно увійшов до "target".

Якщо я використовую цей ssh-конфігураційний файл, використовуючи новіший конфігураційний стрибок ssh-7.3:

Host jump 10.1.*, targets*, *.example.com
  HostName jumphost.example.com
  IdentitiesOnly yes
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

Я в кінцевому підсумку увійшов у "стрибок", а не в "ціль"

Вони є брелоками для Mac, я протестував без нього, і це не має ніякого значення, але я подумав, що я залишу його на всякий випадок.


1
-Jє ProxyJumpі ні HostName.
Павук Борис

Відповіді:


21

Ви ввійшли в систему на хості стрибків, оскільки ваша конфігурація прямо говорить про ігнорування вказаного вами імені хоста та увійти до хоста стрибків.

  HostName jumphost.example.com

HostName замінює ім'я хоста, вказане в командному рядку.

Якщо ви намагаєтесь автоматично використовувати хост стрибка, не вказуючи його в командному рядку ssh, правильним параметром файлу конфігурації є ProxyJump. Наприклад:

Host everything, behind, jumphost, *.example.com
  ProxyJump jumphost.example.com

Тепер ви можете просто бігти, ssh target.example.comі ви будете проходити через стрибок.


2

Проблема полягає в тому, що визначення хосту схоплює як jumhost.example.com AND target.example.com як псевдоніми, то він встановлює HostName до jumphost.example.com в обох випадках.

Я б запропонував зробити псевдоніми за командою Host НЕ повністю кваліфікованими доменними іменами, а потім створити запис Host для кожного

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.