Wie bringe ich einen SSH-Jump-Host dazu, eine bestimmte ausgehende Bind-Adresse zu verwenden?

Wie bringe ich einen SSH-Jump-Host dazu, eine bestimmte ausgehende Bind-Adresse zu verwenden?

Ich versuche, von meinem Heimgerät per SSH über den Jump-Host eine Verbindung zum Endhost herzustellen, indem ich die ProxyJump-Option von OpenSSH verwende.

Der Jump-Host hat zufällig zwei IP-Adressen, die an seine einzige Schnittstelle gebunden sind: x.x.x.xund y.y.y.y. Es gibt eine Firewall mit einer Whitelist von IPs, denen SSH-Zugriff auf den Endhost gestattet ist. y.y.y.ysteht auf der Liste, x.x.x.xist es aber nicht.

x.x.x.xDas Problem besteht darin, dass der Jump-Host standardmäßig für ausgehendes SSH verwendet wird .

Wenn ich manuell per SSH vom Jump-Host zum End-Host gehe, kann ich die Standardeinstellung mit einer OpenSSH- -bOption wie überschreiben ssh -b y.y.y.y endhost. Das funktioniert einwandfrei.

Wenn ich jedoch versuche, von meinem persönlichen Gerät direkt zum Endhost zu gelangen und Jumphost als Zwischenserver verwende, klappt es scheinbar nicht. Ich habe ein paar Variationen ausprobiert, um die Bindungsadresse anzugeben, ~/.ssh/configaber ohne Erfolg.

Gibt es eine Möglichkeit, den Jump-Host anzuweisen, eine bestimmte Bind-Adresse zu verwenden?

Antwort1

Das Problem in meinem Setup war, dass das Standard-Gateway dessprunghostwurde so eingestellt, dass eine andere IP (in Ihrem Beispiel) verwendet wurde x.x.x.xals die, die ich für den ausgehenden Datenverkehr ( in Ihrem Beispiel) sshdverwenden wollte.y.y.y.y

Eine Methode, die bei mir funktioniert hat, war, eine bestimmte Route auf demsprunghostfür dieEndhost's IP.

Auf dersprunghost(auf meinem läuft Ubuntu 20.04):

route add -host <endhost's IP>/32 gw y.y.y.1 dev <y.y.y.y's Iface>

Wobei <endhost's IP>IPv4 wie ist n.n.n.nund die zugehörige <y.y.y.y's Iface>Schnittstelle wie ist .y.y.y.yeth0

Verweise:


Beachten Sie, dass ich speziell daran gearbeitet habe, sshddie Route über die Floating IP von DigitalOcean zu erreichen. In diesem Fall y.y.y.ymuss dies mithilfe von Folgendem ermittelt werden:

curl -s http://169.254.169.254/metadata/v1/interfaces/public/0/anchor_ipv4/address

Wenn dieser Befehl also zurückgibt 10.10.0.7, dann y.y.y.yist 10.10.0.7.

Verweise:

verwandte Informationen