
Mosh (mobile shell) ist ein Computerprogramm, welches benutzt wird, um lokal eine entfernte Kommandozeile verfügbar zu machen. Mosh ähnelt SSH, hat aber weitere Funktionalitäten, um die Verwendung für mobile Nutzer zu verbessern. Die Hauptfunktionen sind:
Die Hauptnachteile von Mosh sind die zusätzlich an den Server gestellten Anforderungen und dass manche Zusatzfunktionen von SSH nicht verwendet werden können.
Mosh ist für die meisten Linux-Distributionen, macOS, NetBSD, FreeBSD und OpenBSD, Android, Solaris und Cygwin verfügbar. Für iOS stellte bis 2015 die Applikation iSSH eine unabhängige Implementation von Mosh zur Verfügung. Inzwischen gibt es mit Blink einen Nachfolger. Mosh unterstützt IPv6 ab Version 1.2.5.
Der Hauptnachteil von Mosh ist, dass es im Vergleich zu ssh zusätzliche Anforderungen an einen Server stellt, denn es benötigt aufgrund seines Designs vollen UDP-Zugriff auf den Server. Auf Servern, die diese Anforderung nicht erfüllen, kann Mosh nicht eingesetzt werden. Beispiele dafür sind Systeme hinter Firewalls, die nur den ssh-Port via TCP freigeben. Problematisch sind auch Server, die nur indirekt erreichbar sind. Während man dies bei ssh mit der Option „ProxyCommand“ lösen kann, wird dies von Mosh nicht unterstützt.
Standardmäßig versucht der Mosh-Server pro Verbindung den ersten freien UDP-Port aus dem Range 60000–61000 zu belegen. Diese dynamische Port-Nutzung wird in Bezug auf eine saubere Firewallkonfiguration als sicherheitsrelevanter Nachteil angesehen. Firewalls versuchen in der Regel Verbindungen zu tracken (sogenanntes Stateful Filtering), welches auf SYN/ACK flags im TCP basiert, UDP-Pakete haben jedoch solche Flags nicht.
Workarounds:
Scrollback wird bislang nicht unterstützt – sofern ein Terminal-Emulator mit Scrollbars eingesetzt wird, dann werden diese ausgeblendet. Diese Funktion ist für das Release 1.3 eingeplant. Ein Workaround ist derzeit, dass Mosh in Verbindung mit Screen oder tmux eingesetzt wird, die eine eigene Scrollback-Funktionalität mitbringen.
SSH-Agent-Forwarding wird bislang nicht unterstützt.
X11-Forwarding wird bislang nicht unterstützt.