Ich habe zwei Server middle
und remote
. middle
wird als Proxy für den Zugriff auf verwendet remote
. Ich habe die SSH-Konfiguration von so eingerichtet middle
, dass Verbindungen remote
über ControlMaster wie folgt erhalten bleiben
Host remote ControlMaster auto ControlPath ~/.ssh/%r@%h:%p ControlPersist yes
Ich habe eine dauerhafte Verbindung von middle
zu erstellt remote
. Das ist praktisch, da die Authentifizierung auf remote
komplex ist.
Ich möchte meine lokale SSH-Konfiguration so einrichten, dass ich von localhost per SSH eine Verbindung herstellen remote
kann middle
.Wiederverwendung der oben erstellten Verbindung. Ich kann dies manuell als tun ssh -t middle ssh remote
, aber ich kann mit der Option ProxyCommand nicht dasselbe erreichen, was besonders ärgerlich ist, wenn ich eine Datei per SCP an senden möchte remote
.
Zu den ProxyCommands, die nicht funktionieren, gehören
ssh middle -W remote:22
(Verbindung wird nicht wiederverwendet)ssh middle -t remote
(geht bis zu einer Shell und verwirrt meinen lokalen SSH-Client, der erwartet, mit SSHD zu kommunizieren, und nicht mit einer Shell)
Antwort1
Ich glaube, Sie verstehen den gesamten ControlMaster-Mechanismus in SSH falsch. Die Idee ist, dass die Verbindung auf dem LOKALEN SYSTEM wiederverwendet wird – also auf dem „mittleren“ Server. Um die Verbindung wiederzuverwenden, müssten Sie also im Wesentlichen den SSH-Client auf „dem mittleren“ Server aufrufen. Und zwar so:
ssh Mitte "ssh remote"
Dadurch werden Sie zunächst mit „middle“ verbunden und dann wird dort ein SSH-Client gestartet, der Sie mit „remote“ verbindet. Die zweite Verbindung wird bei korrekter ControlMaster-Konfiguration die bestehende, dauerhafte Verbindung wiederverwenden.