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

  • ADMIN-Tipp: Fenster-Multiplexer

    Wer am Nachmittag auf Arbeit noch einen lang laufenden Job auf seinem  mitgebrachten Laptop startet, einen Benchmark wie iozone beispielsweise, der schießt sich schnell ins Knie: Der Prozess läuft weit in den Feierabend hinein, man kann aber den Rechner nicht abschalten und einpacken, ohne den Benchmark im Beispiel abzubrechen und viele Stunden bereits absolvierter Laufzeit zu verlieren. Doch es gibt einen Ausweg.
     

  • Die 10 besten SSH-Tipps

    SSH-Logins gehören für die meisten Admins zum Alltag. Das kontinuierlich weiterentwickelte Programm bietet eine Menge Möglichkeiten, die nicht jeder kennt.

  • Microsoft veröffentlicht HTTP-2.0-Server

    Für Interoperabilitätstests bietet Microsoft den Quellcode eines Webservers an, der wesentliche Teile des kommenden HTTP-2.0-Standards implementiert.

  • News
  • Exakte Systemkontrolle
comments powered by Disqus

Artikel der Woche

Loadtests ohne Server

Für Loadtests der eigenen Server bietet sich die Cloud an, denn kurz getaktet lassen sich dort viele Rechnerinstanzen starten, die das eigene Budget nur wenig belasten. Noch flexibler, günstiger und besser skalierbar sind Tests mit einer Serverless-Infrastruktur wie AWS Lambda. Wir führen vor, wie Sie dort mit Serverless Artillery eigene Loadtests starten. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018

Microsite