christianbaer.me

Mehrere SSH-Connections zum selben Host beschleunigen

Manchmal kommt es vor, dass man mehrere SSH-Connections zum selben Host aufbauen muss, um z.B. gleichzeit etwas auszuführen und parallel dazu, die Logfiles zu sehen.

Bei jedem Verbindungsaufbau muss die Verbindung inkl. dem ganzen Overhead neu aufgebaut werden, was Zeit kostet und u.U. dazu führt, dass man Passwörter usw. erneut eingeben muss.

SSH bietet die Möglichkeit, in solchen Fällen die bestehende Verbindung einfach erneut zu benutzen.

Füge folgendes in die .ssh/config ein:

Host *
ControlMaster auto
ControlPath ~/.ssh/control-%h-%p-%r
ControlPersist 600

Host * sorgt dafür, dass die folgenden Bedingungen auf alle Verbindungen angewandt werden. Wenn Du statt dem * einen Hostnamen (z.B. github.com) angibst, beziehen sich die Settings nur auf die Verbindungen zu eben jenem.

ControlMaster auto sorgt dafür, dass bestehende Connections automatisch verwendet werden.

ControlPath ~/.ssh/control-%h-%p-%r legt für jede Verbindung einen Control-Socket unter ~/.ssh an. Diesen Pfad kannst Du frei wählen. Er muss jedoch bereits existieren.

ControlPersist 600 hält die Verbindung für 10 Minuten offen, nachdem die erste Verbindung (der Master) geschlossen wurde. Ohne diese Option werden alle Connections gekappt, sobald der Master geschlossen wird.

In der Manpage zu ssh_config gibt es noch viele weitere Optionen und Konfigurationsbeispiele.