Mosh
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Mosh 🇬🇧 (Mobile shell) ist eine Anwendung für den Fernzugriff auf der Kommandozeile. Es bietet die gleiche Funktionalität wie SSH, beseitigt aber einige Mängel von SSH, die in der Praxis auftreten. Mosh ist dennoch kein Ersatz auf Protokollebene. SSH wird zur Authentifizierung und zum Verbindungsaufbau benötigt, Mosh übernimmt danach. Mosh ist wie SSH eine Server-/Client-Anwendung, allerdings kommt das Programm sowohl auf dem Server als auch auf dem Client zum Einsatz. Wer wer ist, findet Mosh selbst heraus.
Vorteile:
Man kann zwischen verschiedenen Internetverbindungen (LTE, WLAN, …) wechseln, ohne die Verbindung zu verlieren (Handover)
Man kann den PC in den Ruhemodus befördern, später wieder starten und dann sofort ohne Unterbrechung weiterarbeiten
Man braucht keine Root-Rechte zum Benutzen von Mosh
Mosh verwendet ausschließlich UTF-8 und vermeidet so Zeichensatzfehler
Niedriges Bandbreitenminimum und geringe Latenz - Mosh ist auch noch benutzbar, wenn die Verbindung für SSH zu langsam ist
Falls tatsächlich gerade keine Netzwerkverbindung möglich ist, zeigt Mosh dieses an und lässt den Benutzer nicht im Ungewissen
Keine zusätzlichen offenen Ports: Der Mosh-Client meldet sich am Server via SSH an, Mosh öffnet erst dann einen UDP-Port zur Kommunikation und stellt die gleichen Möglichkeiten wie SSH bereit. (Password-Login, Public-Key-Login, …)
Mosh gelingt dies unter anderem dadurch, dass UDP anstatt von TCP als Protokoll Verwendung findet. Dadurch ist kein Handshake mehr nötig. Des Weiteren werden Diffs und Patches verwendet, um den Bildschirminhalt abzugleichen. SSH würde immer den kompletten Bildschirminhalt übertragen, auch wenn sich nur eine Kleinigkeit geändert hätte. Die Status der Bildschirminhalte werden durchnummeriert, um zu erkennen, welchen Patch/Diff der Client bereits erhalten hat. Fehlende Pakete fallen dadurch sofort auf und es erfolgt eine Rückmeldung an den Server, um den nun eingetretenen Status als Grundlage für weitere Patches und Diffs zu verwenden.
Es gibt noch ein paar weitere Kniffe in Mosh. Wenn man mehr erfahren möchte, sollte man sich die Projektseite 🇬🇧 ansehen, die eine ausführliche Dokumentation bietet.
Installation¶
In einigen Ubuntu-Versionen ist Mosh bereits enthalten. Falls nicht, installiert man das folgende Paket:
mosh (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install mosh
Oder mit apturl installieren, Link: apt://mosh
Auf dem Server ist zusätzlich folgendes Paket erforderlich:
openssh-server
Befehl zum Installieren der Pakete:
sudo apt-get install openssh-server
Oder mit apturl installieren, Link: apt://openssh-server
Bedienung¶
Es ist generell empfehlenswert, zuerst die integrierte Hilfe aufrufen:
mosh --help
und die Manpage von Mosh zu lesen.
Beispiele¶
Verbindung mit einem Server herstellen:
mosh BENUTZERNAME@SERVER
Wenn der lokale und der entfernte Benutzername identisch sind, reicht die Serveradresse:
mosh SERVER
Den UDP-Port festlegen. Sinnvoll bei NAT oder einer Portweiterleitung):
mosh -p PORT SERVER
SSH-TCP-Port festlegen. Sinnvoll bei einem SSH-Server, dessen Standard-TCP-Port 22 geändert wurde, bei NAT oder einer Portweiterleitung:
mosh --ssh="ssh -p PORT" SERVER
SSH-Optionen festlegen. Die Optionen sind in den Manpages von SSH nachzulesen:
mosh --ssh="SSH-OPTIONEN" SERVER
Links¶
Projektseite 🇬🇧
Quellcode 🇬🇧
Unterbrechungslose verschlüsselte Verbindung mit Mosh 🇩🇪 - Pro-Linux, 07/2015
Standhaft - Persistentes Remote-Login mit mosh 🇩🇪 - Artikel ix, 07/2012