So können Sie mit SSH Config ohne zusätzlichen Befehl ssh direkt über Jumphost zum Ziel gelangen

14

Wenn ich mache:

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

Am Ende habe ich mich sofort bei "Ziel" angemeldet.

Wenn ich diese ssh-Konfigurationsdatei verwende, verwende ich die neuere ssh-7.3-Sprungkonfiguration:

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

Ich bin am Ende in "jumphost" und nicht in "target" eingeloggt.

Das Schlüsselbundmaterial ist für Mac, ich habe es ohne getestet und es macht keinen Unterschied, aber ich dachte, ich lasse es für alle Fälle.

AirCombat
quelle
1
-Jist ProxyJumpund nicht HostName.
Boris die Spinne

Antworten:

21

Am Ende sind Sie beim Jump-Host angemeldet, da Ihre Konfiguration ausdrücklich angibt, den angegebenen Hostnamen zu ignorieren und sich beim Jump-Host anzumelden.

  HostName jumphost.example.com

HostName überschreibt den in der Befehlszeile angegebenen Hostnamen.

Wenn Sie versuchen, einen Sprunghost automatisch zu verwenden, ohne ihn in der ssh-Befehlszeile angeben zu müssen, lautet die richtige Konfigurationsdateioption ProxyJump. Beispielsweise:

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

Jetzt kannst du einfach rennen ssh target.example.comund du wirst durch den Jumphost gehen.

Michael Hampton
quelle
2

Das Problem ist, dass die Host-Definition sowohl jumphost.example.com als auch target.example.com als Aliase abfängt und HostName in beiden Fällen auf jumphost.example.com setzt.

Ich würde vorschlagen, die Aliase nach dem Host-Befehl NICHT vollständig qualifizierten Domain-Namen zu machen und dann für jeden einen Host-Eintrag zu erstellen

Nanzikambe
quelle