Ich habe eine bereits hergestellte ssh-Verbindung zwischen zwei Rechnern.
Gibt es eine Möglichkeit, Befehle von einem Shell-Skript, das auf dem lokalen Computer ausgeführt wird, über die bereits geöffnete Verbindung und ohne eine weitere SSH-Sitzung zu starten, an den Remote-Computer zu senden?
Akzeptierte Antwort:
Mit ausreichend aktuellen Versionen von OpenSSH ist es sehr einfach, wenn Sie im Voraus planen.
Öffnen Sie zum ersten Mal eine Master-Verbindung. Leiten Sie für nachfolgende Verbindungen Slave-Verbindungen durch die vorhandene Master-Verbindung. In Ihrem ~/.ssh/config
, Richten Sie die Verbindungsfreigabe so ein, dass sie automatisch erfolgt:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Wenn Sie eine ssh-Sitzung mit demselben (Benutzer, Port, Maschine) wie eine bestehende Verbindung starten, wird die zweite Sitzung über die erste getunnelt. Der Aufbau der zweiten Verbindung erfordert keine erneute Authentifizierung und geht sehr schnell.