Wer kennt es nicht: Abends noch eine SSH-Session laufen gehabt, Laptop zugeklappt und zuhause ist die Session tot. An ein Arbeiten im Zug ist noch nichtmal zu denken.
Anderes Szenario: Man trennt sein Netzwerkkabel um kurz einem Kollegen was zu zeigen und obwohl man immernoch mit dem WLAN verbunden ist, ist die SSH-Session nicht mehr zu retten.
SSH ist ein super Tool, um remote Aufgaben zu erledigen. Das Problem an SSH ist nur, dass es eine durchgehende TCP-Verbindung braucht.
Mobile Shell
Hier kommt Mosh (MobileShell) ins Spiel: Mosh setzt auf UDP und braucht keine persistente Verbindung zum Server. Roaming mit verschiedenen IPs ist somit kein Problem mehr. Als zusätzlichen Vorteil bringt Mosh noch die Erkennung der Tastenanschläge mit, so dass nicht erst auf die Antwort vom Server gewartet wird, bis der Anschlag auch in der Shell angezeigt wird. Ein Traum für alle Bahnfahrer und Tastaturvirtuosen!
Installation auf dem Server
Easy-Peasy:
sudo apt-get install mosh
Installationshinweise für eine Vielzahl anderer Systeme finden sich unter: https://mosh.mit.edu/#getting
Theoretisch bräuchte man noch nicht mal Admin-Rechte für die Installation: Es reicht, das Binary auf dem Server abzulegen und die Session mit --server=/path/to/mosh-binary
starten.
Zusätzlich muss die Firewall für die UDP-Ports 60000 bis 60000+x freigegeben werden. x ist hierbei die Anzahl möglicher paralleler Sessions.
Installation auf dem eigenen Rechner
sudo apt-get install mosh
oder für Mac OS X:
brew install mosh
Benutzung
Grundsätzlich ist Mosh wie SSH zu benutzen:
mosh kunibert@castle.com
Sicherheit
Unser einziges Bedenken im Projekt gegenüber Mosh war, dass man seine Angriffsfläche über einen weiteren, von außen erreichbaren Daemon vergrößern könnte. Dem ist aber nicht so, da der Mosh-Server beim Aufbau der initialen SSH-Verbindung durch den Benutzer gestartet wird. Es gibt also keinen Daemon und auch keinen “privileged code”.
Kommentare