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.com

mosh <host> — Verbindet mit dem aktuellen Benutzernamen.

mosh server.example.com

mosh --ssh='ssh -p <port>' <user>@<host> — Nutzt einen eigenen SSH-Port für den initialen Verbindungsaufbau.

mosh --ssh='ssh -p 2222' admin@server.example.com

mosh --ssh='ssh -i <key>' <user>@<host> — Verwendet einen bestimmten SSH-Identitätsschlüssel.

mosh --ssh='ssh -i ~/.ssh/id_ed25519' admin@server

Port & Netzwerk

mosh -p <port> <user>@<host> — Verwendet einen bestimmten UDP-Port für den mosh-Datenverkehr.

mosh -p 60001 admin@server

mosh -p <start>:<end> <user>@<host> — Gibt einen UDP-Port-Bereich an.

mosh -p 60000:60010 admin@server

mosh --bind-server=<addr> <user>@<host> — Bindet den mosh-Server an eine bestimmte IP-Adresse.

mosh --bind-server=0.0.0.0 admin@server

Server-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@server

mosh --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@server

mosh --predict=<mode> <user>@<host> — Setzt den Vorhersage-Modus (adaptive, always, never, experimental).

mosh --predict=always admin@server

Sitzungsverwaltung

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 a

mosh <host> -- screen -r — Verbindet und hängt sich an eine screen-Sitzung.

mosh admin@server -- screen -r

Mosh 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.

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