Mosh (Mobile Shell) ist eine Alternative zu SSH, wenn man öfters mal die Netzanbindung wechselt, weil man z. B. viel unterwegs ist.

Bei normalem SSH muss man sich jedes Mal neu einloggen, sobald sich die IP-Adresse des Clienten ändert.

Nicht so bei Mosh, hier zählt die Client-IP-Adresse für den Mosh-Server überhaupt nichts, der Client authentifiziert sich immer über einen eigenen Schlüssel.

Und so ist es auch egal, ob man von WLAN nach UMTS wechselt, sich der Rechner für eine Stunde schlafen legt und dann wieder per DSL einwählt. Man ist beim Aufbau einer neuen Verbindung mit anderer IP-Adresse immer noch am Mosh-Server eingeloggt.

Verbindungsaufbau

Um eine Verbindung per Mosh aufzubauen, wird zuerst eine SSH-Verbindung zum Server aufgebaut. Über diese Verbindung wird auf dem Server der Mosh-Server gestartet der geheime Schlüssel an den Clienten übermittelt. Dann wird die SSH-Verbindung beendet. Auf dem Clienten wird der Mosh-Client gestartet und verbindet sich per UDP (siehe unten) auf den Mosh-Server und authentifiziert sich diesem gegenüber mit dem vorher übermittelten Schlüssel.

Anstatt diesen gesamten Vorgang über den Clienten erledigen zu lassen kann man sowohl den Mosh-Server als auch den Mosh-Clienten manuell starten, muss dann aber dafür sorgen, dass der Client den richtigen Schlüssel und Port kennt.

Der Mosh-Server benötigt im Gegensatz zu SSH für jeden Clienten einen eigenen Port, angefangen bei 60001.

Reaktionszeit

Selbst über sehr langsame Verbindungen mit einer großen Round-Trip-Time soll Mosh schnell auf Tastatureingaben reagieren, da nicht jedes  Byte vom Server gesendet wird sondern immer nur die aktuelle Bildschirmausgabe.

Eingaben, die noch nicht vom Mosh-Server bestätigt worden sind, werden unterstrichen dargestellt; so kann man weiterschreiben und Texte korrigieren, ohne jedes Mal wie bei SSH darauf zu warten, wann die Eingaben endlich angekommen sind.

Sonstiges

  • Mosh benötigt keine Root-Rechte.
  • Mosh (Server und Client) gibt es als Pakete für alle möglichen Linux-Distributionen, für OS X, für Cygwin und als Erweiterung für Google Chrome.

Eine interessante Ergänzung zu SSH auch wenn ich wegen mangelndem Wissen überhaupt nicht einschätzen kann, ob Mosh sicher ist. Zu diesem Thema gibt es auf Youtube ein paar Videos, die man sich mal angucken sollte…

Der letzte Commit auf der GitHub-Seite ist von Dezember 2014.

Die Projektseite ist hier zu finden.

Danke an Mister n. für den Tipp.