Как подключиться к SSH напрямую через jumphost, используя SSH Config без дополнительной команды ssh

14

Если я сделаю:

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

Я сразу же вошел на «цель».

Если я использую этот файл конфигурации 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

Я вошел в "Jumphost" не "цель"

Они брелок для Mac, я тестировал без него, и это не имеет значения, но думал, что я оставлю это на всякий случай.

AirCombat
источник
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и вы пройдете через Jumphost.

Майкл Хэмптон
источник
2

Проблема заключается в том, что определение Host перехватывает как jumphost.example.com, так и target.example.com как псевдонимы, затем в обоих случаях для HostName устанавливается значение jumphost.example.com.

Я бы предложил сделать псевдонимы после команды Host, а не полные доменные имена, а затем создать запись Host для каждого

Nanzikambe
источник