Mosh: Mit SSH in der Bahn

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:

1
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

1
sudo apt-get install mosh

oder für Mac OS X:

1
brew install mosh

Benutzung

Grundsätzlich ist Mosh wie SSH zu benutzen:

1
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”.

Comments