mosh — Roaming-fähige Remote-Shell über UDP
Praxis-Guide zu mosh — latenztolerante SSH-Alternative für instabile Verbindungen, Netzwechsel und mobiles Arbeiten mit UDP-basiertem Roaming.
mosh ist eine latenztolerante Alternative zu SSH für instabile Verbindungen: Die Sitzung bleibt aktiv, wenn du das Netzwerk wechselst, den Laptop in den Schlaf versetzt oder dich durch schlechte WLAN-Zonen bewegst. Nach dem initialen SSH-Handshake wechselt mosh auf UDP – Netzwechsel und kurze Verbindungsabbrüche werden transparent überbrückt. Dank Local-Echo reagiert dein Terminal sofort, selbst bei hoher Latenz. Das macht mosh zur ersten Wahl für Remote-Arbeit auf Mobilfunk, Zug-WLAN oder VPN-Verbindungen.
Grundlegende Verwendung
mosh <user>@<host> — Verbindet mit einem Remote-Host (wie ssh).
mosh admin@server.example.commosh <host> — Verbindet mit dem aktuellen Benutzernamen.
mosh server.example.commosh --ssh='ssh -p <port>' <user>@<host> — Nutzt einen eigenen SSH-Port für den initialen Verbindungsaufbau.
mosh --ssh='ssh -p 2222' admin@server.example.commosh --ssh='ssh -i <key>' <user>@<host> — Verwendet einen bestimmten SSH-Identitätsschlüssel.
mosh --ssh='ssh -i ~/.ssh/id_ed25519' admin@serverPort & Netzwerk
mosh -p <port> <user>@<host> — Verwendet einen bestimmten UDP-Port für den mosh-Datenverkehr.
mosh -p 60001 admin@servermosh -p <start>:<end> <user>@<host> — Gibt einen UDP-Port-Bereich an.
mosh -p 60000:60010 admin@servermosh --bind-server=<addr> <user>@<host> — Bindet den mosh-Server an eine bestimmte IP-Adresse.
mosh --bind-server=0.0.0.0 admin@serverServer-Optionen
mosh --server=<path> <user>@<host> — Gibt den Pfad zum mosh-Server auf dem Remote-Host an.
mosh --server=/usr/local/bin/mosh-server admin@servermosh --server='mosh-server new -l LANG=en_US.UTF-8' <host> — Setzt das Locale auf dem Remote-mosh-Server.
mosh --server='mosh-server new -l LANG=en_US.UTF-8' admin@servermosh --predict=<mode> <user>@<host> — Setzt den Vorhersage-Modus (adaptive, always, never, experimental).
mosh --predict=always admin@serverSitzungsverwaltung
Ctrl+^ . — Trennt die mosh-Sitzung (wie ssh ~.).
Press Ctrl+^ then .mosh <host> -- tmux a — Verbindet und hängt sich an eine laufende tmux-Sitzung.
mosh admin@server -- tmux amosh <host> -- screen -r — Verbindet und hängt sich an eine screen-Sitzung.
mosh admin@server -- screen -rMosh vs. SSH
mosh <host> — Überlebt Netzwechsel, Sleep/Wake-Zyklen und WLAN-Roaming.
mosh admin@server (keeps working after laptop sleep)mosh <host> — Nutzt UDP nach dem initialen SSH-Handshake (robuster bei Paketverlusten).
mosh admin@server (uses UDP port 60000+ after SSH auth)mosh <host> — Local-Echo: zeigt Tastenanschläge sofort an, auch bei langsamen Verbindungen.
mosh admin@server (responsive even on 500ms latency)ssh <host> — SSH verwenden, wenn Port-Forwarding, X11 oder ein SOCKS-Proxy benötigt wird (mosh unterstützt diese Features nicht).
ssh -L 8080:localhost:80 admin@server (port forwarding needs ssh) Fazit
mosh ersetzt SSH nicht vollständig, aber für mobiles Arbeiten und instabile Verbindungen ist es die überlegene Wahl. Kombiniere es mit tmux oder screen, um Sitzungen auch nach echten Verbindungsabbrüchen nahtlos fortzusetzen. Wer oft im Zug, im Café oder per Mobilfunk arbeitet, sollte mosh dauerhaft in seinen Workflow integrieren.
Weiterführende Links
- Mosh – Wikipedia – Hintergrund und Geschichte (englisch)
- mosh.org – offizielle Website – Projektseite und Dokumentation (englisch)
Verwandte Kommandos
- ssh – sichere Remote-Shell mit Verschlüsselung und Port-Forwarding
- scp – Dateien sicher über SSH auf Remote-Hosts kopieren
- ssh-keygen – SSH-Schlüsselpaare erstellen und verwalten