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.


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.


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.