Mit SSH Multiplexing schneller einloggen

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Mit dem Multiplexing-Feature lassen sich SSH-Verbindungen deutlich beschleunigen.

Ungeduldige Naturen können von der Secure Shell durchaus einmal genervt sein, denn das Login auf einem entfernten Rechner kann, je nach CPU und Netzwerk, leicht ein paar Sekunden dauern. Abhilfe schafft das Multiplexing-Feature von SSH, das es ermöglicht, eine SSH-Verbindung mehrfach zu verwenden. Damit fällt der Overhead durch TCP-Verbindungsaufnahme und Key-Austausch weg und das zweite Einloggen geht deutlich schneller vonstatten.

Um Multiplexing pauschal für alle Verbindungen zu aktivieren, tragen Sie die folgenden Zeilen in der Konfigurationsdatei "$HOME/.ssh/config" ein:

Host *
    ControlMaster auto
    ControlPath ~/.ssh/s/m-%r@%h:%p

Die für das Multiplexing verwendeten Sockets werden somit im Verzeichnis "~/.ssh/s/" erzeugt, das Sie erst mit passenden Rechten vergeben müssen:

mkdir ~/.ssh/s
chmod go-rwx ~/.ssh/s/

Wenn Sie sich nun auf einem anderen Rechner einloggen, zeigt ein Blick in das Verzeichnis einen neuen Socket an:

$ ls -l .ssh/s
total 0
srw------- 1 oliver oliver 0 Dez  5 14:07 m-oliver@supersecret.org:22

Weitere SSH-Sessions nutzen diesen Socket, solange die erste Verbindung geöffnet ist. Die folgenden beiden Aufrufe demonstrieren den Gewinn. Im ersten Beispiel wird eine neue Verbindung gestartet, das zweite macht per Multiplexing von dem offenen Kanal Gebrauch:

$ time ssh one.supersecret.org date
Mon Dec  5 14:08:11 CET 2016

real    0m6.017s
user    0m0.028s
sys    0m0.000s
$ time ssh one.supersecret.org date
Mon Dec  5 14:10:21 CET 2016

real    0m0.104s
user    0m0.004s
sys    0m0.008s

Eine weitere für das Multiplexing interessante Option ist "ControlPersist", das die maximale Dauer der Master-Verbindung angibt.

Auch Ansible , das sich für das zentrale Konfigurationsmanagement von Servern nutzen lässt und dazu auf SSH zurückgreift, lässt sich mit dieser Methode beschleunigen. Dazu dient diese Zeile in der Ansible-Konfiguration:

ssh_args = -o ControlMaster=auto -o ControlPersist=60s
06.04.2016
SSH

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023