Login
Newsletter
Werbung

Do, 2. Juli 2015, 15:00

Unterbrechungslose verschlüsselte Verbindung mit Mosh

Auf Verbindungsabbrüche reagiert SSH empfindlich. Die mobile Shell (Mosh) ist eine Ergänzung für SSH, die auch bei instabilen Netzwerkverbindungen den Kontakt zwischen Client und Server aufrechterhält.

Die Secure Shell (SSH) ist auf Unix-ähnlichen Systemen wie Linux der verbreitete Standard zur verschlüsselten Anmeldung und Datenübertragung auf der Kommandozeile. SSH-Verbindungen haben aber einen Nachteil bei Clients mit langsamen oder instabilen Internetverbindungen: Verbindungsabbrüche.

Denn das SSH-Protokoll arbeitet ausschließlich mit TCP (Transmission Control Protocol), das an den beiden Enden der SSH-Verbindung einen Socket (Protokoll-Schnittstelle) zur Datenübertragung öffnet. Bleiben die TCP-Pakete eine Weile aus, dann bricht diese Verbindung zusammen. Diese Wartezeit beträgt bei TCP üblicherweise 20 Sekunden. Danach quittiert der SSH-Client die Verbindung mit seiner berüchtigten Meldung »Broken pipe«, und es ist eine erneute Anmeldung am SSH-Server nötig. Das macht die Verwendung von SSH auf Notebooks und Smartphones mit schwachem WLAN/3G/LTE unterwegs zu einem zähen Missvergnügen. Besser wird das mit Mosh (»Mobile Shell«): Diese junge Ergänzung für SSH wurde vor zwei Jahren am Massachusetts Institute of Technology entwickelt.

Permanente Verbindung mit Mosh

David Wolski

Permanente Verbindung mit Mosh

Mosh macht mobil

An schlechter Konnektivität kann die Mosh nichts ändern, wohl aber besser damit arbeiten. Mosh nutzt dazu einige Tricks, um die Einschränkungen von SSH bei lausigen Verbindungen zu beseitigen, und ist um einen Bruch mit Konventionen nicht verlegen. Der erste Bruch: Mosh nutzt nicht vornehmlich TCP, sondern in beiden Richtungen den zustandslosen Gegenpart UDP (User Datagram Protocol) zur Datenübertragung, der sonst für Streaming, IP-Telefonie, Remote-Desktop-Verbindungen und vor allem Bittorrent zum Einsatz kommt. Der zweite Bruch: Das eigentliche SSH-Terminal, also die Kommandozeile, läuft nicht auf dem Client, sondern auf dem Server.

Der Client bekommt lediglich eine Übertragung des Terminals zu sehen. Der dritte Bruch: Da Mosh mit UDP arbeitet, kann die Verbindung beliebig lange offen bleiben, und der Client darf sogar seine IP-Adresse währenddessen ändern, was etwa beim Roaming eines Mobil-Clients über verschiedene Netze passiert.

Damit dies funktioniert, müssen Server und Client aber einige, wenn auch bescheidene Voraussetzungen erfüllen: Auf beiden Seiten muss Mosh installiert sein, auf dem Server muss OpenSSH laufen. Zusätzlich zu SSH-Verbindungen über TCP muss die Firewall des Servers UDP-Verbindungen auf den Ports 60000 bis 61000 zulassen, und auch auf Client-Seite dürfen UDP-Pakete nicht blockiert werden. Auch gibt es gegenüber von SSH ein paar Einschränkungen: Mosh eignet sich für ein Terminal mit Kommandozeile, nicht aber für SSH-Tunnel, zur Dateiübertragung und zum Aufbau von Proxy-Verbindungen.

Genau wie SSH ist aber auch Mosh verschlüsselt und arbeitet mit dem Algorithmus AES und der akzeptablen Schlüssellänge von 128 Bit. Der offengelegte Quellcode gibt eine gewisse Versicherung, dass das mit rechten Dingen zugeht, wobei die AES-Verschlüsselung allerdings mit Hilfe der OpenSSL-Bibliothek erledigt wird.

Installation und erste Verwendung

Obwohl die stabile Version der Open-Source-Software Mosh erst 2013 erschien, haben sie die meisten Linux-Distributionen bereits im Repertoire. Man könnte sagen, es war Liebe auf den ersten Blick, da fortgeschrittene Anwender vergleichsweise oft in der Kommandozeile unterwegs sind.

Die Einrichtung ist deshalb nicht kompliziert. Mosh enthält sowohl die Server- als auch die Client-Komponente. Debian 7 und Ubuntu 12.04 installieren Sie Mosh und, falls nötig, den SSH-Server mit diesem Befehl:

sudo apt-get install mosh openssh-server

Unter Fedora (ab Version 15) bekommen Sie beides als root oder mit vorangestelltem sudo über

yum install mosh openssh-server

und auch OpenSuse ab 12.3 kennt die Pakete, die sich einfach mit dem Kommandozeilen-Paketmanager Zypper installieren lassen:

sudo zypper in mosh

Auf den Clients können Sie sich die Installation des Open-SSH-Servers sparen und brauchen nur Mosh zu installieren. Auch ist es nicht nötig, auf dem Server einen Mosh-Daemon oder Server-Prozess manuell zu starten, denn dies erledigt der Client von sich aus. Nur der SSH-Server muss laufen.

Kommentare (Insgesamt: 9 || Alle anzeigen )
Re: Offene Ports (blubb, Mo, 6. Juli 2015)
Offene Ports (Harribert, Fr, 3. Juli 2015)
Re: Wozu? Gibt doch screen. (qwerrt, Fr, 3. Juli 2015)
Wozu? Gibt doch screen. (Anonymous Coward, Fr, 3. Juli 2015)
Re: Dann lieber GnuPG (ich, Do, 2. Juli 2015)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung