Ich spielte mit der Idee, einen SSH-Proxy-Server oder auch Jump Host genannt zu haben, den ich verwenden würde, um mich mit all meinen"versteckt"Server. Im Grunde habe ich also das folgende Setup. Bitte beachten Sie, dass ich hier absichtlich IP-Adressen anstelle von Hostnamen verwende.
<client> ---> <proxy_ssh> ---> <192.168.0.*>
Meine Absicht ist, dass es für die Benutzer so transparent wie möglich sein soll. Im Idealfall sollten die Benutzer also nur den folgenden Befehl ausführen müssen
# ssh [email protected]
Damit dies funktioniert, habe ich Folgendes erstellt .ssh/config
.
Host *
ServerAliveInterval 240
Compression yes
ForwardAgent yes
ForwardX11 yes
Host 192.168.0.*
ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p
Das funktioniert gut. Aber es ist etwas mühsam, wenn ich hinter meinem proxy_ssh
Server mit mehreren Netzwerken arbeiten müsste. Ich habe also versucht, das einfach ProxyCommand
zum Host *
Abschnitt hinzuzufügen, was aber nicht funktioniert hat.
Ich wollte dies für den Endbenutzer transparenter machen und habe die SSH-Konfiguration wie folgt geändert, wobei ich einfach die spezifische Hostdefinition weggelassen habe.
Host *
ServerAliveInterval 240
Compression yes
ForwardAgent yes
ForwardX11 yes
ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p
Dies hatte zur Folge, dass ich keine Verbindung mehr zum Endhost herstellen konnte. Die Verbindung ist einfach abgelaufen!
Daher meine Frage: Gibt es eine Möglichkeit, dies transparenter zu gestalten, sodass alle meine SSH-Verbindungen den proxy_ssh
Host verwenden?
Antwort1
Das obige Beispiel macht es rekursiv, d. h. jede Verbindung verwendet einen Proxy-Befehl, also wieder ssh mit einem anderen Proxy-Befehl. Eine gute Möglichkeit, Ihren Proxy per DOS zu manipulieren.
Sie sollten den Proxy aus der Liste ausschließen, -F /dev/null
den Befehl „Konfiguration für Proxy ignorieren“ verwenden oder den Proxy-Befehl für den Proxy-SSH einfach ignorieren:
ProxyCommand ssh -oProxyCommand=none my_user@proxy_ssh.example.com netcat -w 120 %h %p
Antwort2
Fügen Sie der Konfiguration für den Jump-Host einen Eintrag hinzu, der den Proxy-Befehl überschreibt:
Host proxy_ssh.example.com
ProxyCommand none
Andernfalls wird versucht, mithilfe des Proxy-Befehls selbst zum Jump-Host zu gelangen.