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.
-J
istProxyJump
und nichtHostName
.Antworten:
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
ü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:Jetzt kannst du einfach rennen
ssh target.example.com
und du wirst durch den Jumphost gehen.quelle
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
quelle