ssh: ProxyCommand über dauerhafte ControlMaster-Verbindung

ssh: ProxyCommand über dauerhafte ControlMaster-Verbindung

Ich habe zwei Server middleund remote. middlewird 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 middlezu erstellt remote. Das ist praktisch, da die Authentifizierung auf remotekomplex ist.

Ich möchte meine lokale SSH-Konfiguration so einrichten, dass ich von localhost per SSH eine Verbindung herstellen remotekann 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.

verwandte Informationen