SSH durch Mosh ergänzen

© Hugo Lacasse, 123RF

Die Shell für unterwegs

Lokales Echo und Netzroaming: Mosh ergänzt die bewährte SSH-Shell um Funktionen, die besonders bei instabilen und mobilen Netzverbindungen höhere Stabilität gewährleisten.
RAID-Technologie verspricht höhere Performance und mehr Sicherheit beim permanenten Speichern von Daten. Die ADMIN-Redaktion gibt einen Überblick über ... (mehr)

Es erscheint paradox: In einer Zeit, in der Netzverbindungen immer schneller werden, sind wir doch immer häufiger mit instabilen Internetverbindungen konfrontiert. Außerhalb von Großstädten liefert der Surfstick häufig nur langsame EDGE-Verbindungen, und drahtlose Netzwerke auf Veranstaltungen oder in Hotels sind oft überlastet.

Regelmäßige Nutzer von SSH kennen das Problem: Bei schlechter Netzverbindung hat die Secure Shell zahlreiche Macken. Führt man auf dem entfernten Host einen Befehl mit langer Ausgabe aus, etwa das Anzeigen einer umfangreichen Logdatei, lässt sich dieser mit [Strg] + [C] nicht mehr abbrechen. Der Befehl ist auf dem Host bereits ausgeführt, aber der Nutzer muss noch auf die Übertragung von möglicherweise mehreren Megabytes an Daten warten. Einen Editor über eine instabile SSH-Verbindung zu nutzen, macht wenig Freude, wenn das System auf jeden Tastendruck erst nach mehreren Sekunden reagiert.

SSH

SSH ist seit Langem der bevorzugte Weg, sich auf der Konsole eines Systems über das Netzwerk einzuloggen. SSH arbeitet dabei vollständig verschlüsselt – im Gegensatz zu früheren, unsicheren Protokollen wie Telnet, bei dem sämtliche Daten im Klartext übertragen werden und von einem Angreifer mitgelesen werden können. Unter freien Unix-Systemen wie Linux oder BSD kommt in der Regel OpenSSH zum Einsatz.

SSH-Aufsatz

Abhilfe schaffen will hier Mobile Shell oder kurz genannt Mosh [1] . Ähnlich SSH bietet es einen sicheren Login auf einem entfernten Rechner, Mosh ist aber auf die Tücken mobiler Netze besser eingestellt. Dabei ersetzt Mosh SSH nicht vollständig, sondern baut darauf auf. Der Loginvorgang wird weiterhin über SSH abgewickelt, anschließend übernimmt Mosh die Kontrolle über eine UDP-Verbindung. Mosh wurde am MIT entwickelt, ist freie Software und steht unter der GNU General Public License (GPL) Version 3.

Während bei SSH grundsätzlich der gesamte Datenstrom einer Konsole übertragen wird, stellt Mosh nur den jeweils aktuellen Zustand dar. Beim eingangs erwähnten Beispiel eines Befehls mit umfangreicher Ausgabe muss Mosh also nicht die gesamten Daten übertragen. Läuft der Befehl auf Serverseite schneller ab als die Ausgabedaten übertragen werden, überspringt Mosh einen Großteil der Ausgabe.

Wenn Sie lokal Zeichen eintippen, werden diese vom Mosh-Client umgehend angezeigt. Auch dann, wenn die Netzverbindung gerade eine deutliche Verzögerung aufweist. Mosh versucht, vorherzuberechnen, welche Auswirkungen das Tippen auf dem entfernten Server hätte und zeigt dies bereits an. Dieses sogenannte lokale Echo arbeitet dabei nicht absolut perfekt, laut Aussagen der Entwickler liefert ihr Algorithmus in 70 Prozent der Fälle eine korrekte Anzeige. Doch die Benutzbarkeit, etwa von Editoren, wird dadurch deutlich erhöht. Bereits eingetippte aber noch nicht übertragene Zeichen zeigt die Shell dabei unterstrichen an.

Fliegender Wechsel

Ein besonderes Feature von Mosh: Sogenanntes Roaming, der Wechsel zwischen verschiedenen Netzwerken, verläuft reibungslos. Wenn man etwa seinen Laptop vom Netzwerkkabel trennt und sich anschließend mit einem WLAN verbindet, bleibt eine SSH-Sitzung einfach stehen. Mosh hingegen bemerkt die fehlende Netzverbindung und zeigt eine entsprechende Meldung an ( Abbildung 1 ). Sobald man sich mit dem WLAN verbunden hat, kann die aktuelle Sitzung sofort weitergenutzt werden.

Abbildung 1: Mosh erkennt, wenn die Netzwerkverbindung abbricht.

Ä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