SSH Multiplexing (Connection Sharing)

Fedora release 18 (Spherical Cow)
3.8.9-200.fc18.x86_64 #1 SMP Fri Apr 26 12:50:07 UTC 2013

SSH Multiplexing erlaubt weitere SSH-Verbindungen ohne Passwort zu verwenden, nachdem eine Sitzung (Master) authentifiziert wurde. Die Vorteile sind eine schnellere Reaktionszeit da ein bestehender Handshake mitbenutzt wird und ein Login flotter zustande kommt, da weitere Verbindungen kein Passwort erfordern.

Die Option ControlMaster auto bewirkt, dass automatisch eine Master-Verbindung erzeugt wird, falls noch keine existiert. Damit muss der Anwender nicht explizit zwischen Master und Slave unterscheiden.

Die Option ControlPath ~/.ssh/%r@%h:%p erzeugt im $HOME Verzeichnis des Benutzers eine eindeutige Datei solange die Master-Sitzung besteht (Socket) Benutzername@Host:Port

Die Option ControlPersist 600 definiert, dass die Master-Verbindung über die Lebenszeit des erzeugenden SSH-Aufrufs hinweg bestehen bleibt und erst nach 600 Sekunden ohne Nutzung geschlossen wird.

Um SSH Multiplexing nur für diesen Benutzer permanent zu definieren erzeugt man im lokalen Verzeichnis /home/benutzer/.ssh/ eine Datei mit Namen config. Soll dieses Feature systemweit wirksam sein, muss die ssh_config im Verzeichnis /etc/ssh/ mit selbigem Inhalt editiert werden.
Host *
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p

ControlPersist 600
Standardmäßig wird die config Datei mit den Rechten 664 (-rw-rw-r--) angelegt, was aber einen Fehler produziert, denn nur der Eigentümer darf Schreibrechte haben.
Bad owner or permissions on /home/benutzer/.ssh/config
Deshalb sollte diese auf 644 (-rw-r--r--) geändert werden, da sonst keine SSH-Verbindungen möglich sind.
$ chmod 644 /home/benutzer/.ssh/config
Nach einer erfolgreichen SSH-Verbindung lässt sich mit folgendem Befehl die Konnektivität der Master-Sitzung überprüfen: 
$ ssh -O check 192.168.1.2
Master running (pid=7675)
Im /home/benutzer/.ssh/ Verzeichnis befindet sich nun bei bestehender Verbindung eine leere Datei mit sinngemäß folgendem Dateinamen:
benutzername@192.168.1.2:22
Eine SSH Master-Sitzung wird mit diesem Befehl beendet: 
$ ssh -O exit 192.168.1.2
Exit request sent.
Die Slave- u. Master-Sitzungen werden daraufhin unterbrochen und erhalten folgende Meldung:
Shared connection to 192.168.1.2 closed.

Kommentare

Beliebte Posts