Jak SSH bezpośrednio celować przez jumphost za pomocą SSH Config bez dodatkowej komendy ssh

14

Jeśli zrobię:

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

Skończyło się od razu zalogowaniem do „celu”.

Jeśli użyję tego pliku konfiguracyjnego ssh, używając nowszej konfiguracji skoku 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

W końcu zalogowałem się do „jumphost”, a nie „target”

Breloki są na Maca, testowałem bez nich i to nie ma znaczenia, ale pomyślałem, że zostawię to na wszelki wypadek.

AirCombat
źródło
1
-Jjest ProxyJumpi nie HostName.
Boris the Spider

Odpowiedzi:

21

W końcu zalogowałeś się do hosta skoku, ponieważ twoja konfiguracja wyraźnie mówi, aby zignorować podaną nazwę hosta i zalogować się do hosta skoku.

  HostName jumphost.example.com

HostName zastępuje nazwę hosta określoną w wierszu polecenia.

Jeśli próbujesz automatycznie użyć hosta skoku bez konieczności podawania go w wierszu komend ssh, poprawną opcją pliku konfiguracyjnego jest ProxyJump. Na przykład:

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

Teraz możesz po prostu biec, ssh target.example.coma przejdziesz przez jumphost.

Michael Hampton
źródło
2

Problem polega na tym, że definicja hosta przechwytuje zarówno adres jumphost.example.com ORAZ target.example.com jako aliasy, a następnie ustawia nazwę hosta na jumphost.example.com w obu przypadkach.

Sugeruję utworzenie aliasów po poleceniu Host NIE w pełni kwalifikowanymi nazwami domen, a następnie utworzenie wpisu hosta dla każdej z nich

Nanzikambe
źródło