AA_kette-grau-gold_123rf-3948071_DidierKobi.jpg

© Didier Kobi, 123RF

Starke Verbindung

SSH über unzuverlässige Leitungen

16.07.2012
SSH nervt, wenn die WLAN-Verbindung immer wieder abbricht, sich die IP-Adresse ändert, die Datenpakete über GSM nur tröpfeln und man das Getippte erst nach Sekunden zu Gesicht bekommt. Glücklicherweise gibt es AutoSSH und Mosh.

SSH ist für den Linux-Admin das Programm der Wahl, wenn es darum geht, sich per Kommandozeile auf einem entfernten Linux- oder BSD-Rechner einzuloggen. Allerdings kann SSH auch Nerven kosten – etwa, wenn die Verbindung in einem wackeligen Netz immer wieder abbricht oder die Datenpakete über GSM oder SkyDSL nur tröpfeln. Das selbe gilt, wenn man den Laptop mal kurz schlafen legt oder in ein anderes Netzwerk wechselt und sich danach die IP-Adresse geändert hat. Die beiden Programme AutoSSH und Mosh gehen diese Problematik von ganz unterschiedlichen Seiten her an.

AutoSSH

AutoSSH [1] gibt es bereits seit über zehn Jahren. Es arbeitet als Wrapper um das normale SSH. Bedingt durch dieses Prinzip beherrscht AutoSSH fast alles, was SSH auch kann, weist aber auch fast alle Nachteile der SSH auf.

Der Unterschied zwischen einer normalen SSH-Verbindung und einer via AutoSSH liegt darin, dass AutoSSH die Verbindung überwacht und sie bei einem Abbruch automatisch mit den gleichen Parametern neu startet – also mit den gleichen Tunnels und dem selben auf dem entfernten Rechner auszuführenden Kommando.

Die Verbindungsüberwachung von AutoSSH geschieht durch zwei eigene Port-Weiterleitungen. AutoSSH richtet diese zusätzlich zu gegebenenfalls vom Benutzer gewünschten Port-Weiterleitungen ein, jeweils eine in Hin- und eine in Rückrichtung (Abbildung 1). Beide sind auf dem entfernten Rechner so miteinander verbunden, dass Daten, die Sie über die eine Weiterleitung senden, auf dem entfernen Rechner direkt wieder in die andere wandern und auf diesem Weg wieder bei Ihnen eintreffen. Bleiben sie aus, terminiert AutoSSH die bestehende Verbindung und versucht sie anschließend neu aufzubauen (Listing 1).

Abbildung 1: AutoSSH überwacht die SSH-Verbindung mittels zweier Port-Weiterleitungen.

Listing 1

user@lokaler.pc$ autossh remote.pc
Willkommen auf remote.pc!
user@remote.pc $
Connection to remote.pc closed.
ssh: connect to host remote.pc port 22: Connection timed out
ssh: connect to host remote.pc port 22: Connection timed out
Willkommen auf remote.pc!
user@remote.pc $ exit
Connection to remote.pc closed.
user@lokaler.pc $

Im Syslog finden sich danach folgende Meldungen:

autossh: starting ssh (count 1)
autossh: ssh child pid is 18851
autossh: ssh exited with error status 255; restarting ssh
autossh: starting ssh (count 2)
autossh: ssh child pid is 19061
autossh: ssh exited with status 0; autossh exiting

Sofern auf dem entfernten Rechner GNU Screen installiert ist, können Sie sich mithilfe des Kommandos

$ autossh Remote-Rechner -t 'screen -RD'

auf dem entfernten Rechner zu einer existierenden Screen-Session verbinden, oder – wenn noch keine existiert – ein neue starten. Registriert AutoSSH einen Verbindungsabbruch, dann ruft es nach dem erneutem erfolgreichem Aufbau der SSH-Verbindung automatisch wieder screen -RD auf dem entfernten Rechner auf. Da dieses Mal eine Screen-Session existiert, verbindet es zu dieser.

Auf diese Weise arbeiten Sie mit der Kombination aus AutoSSH und GNU Screen recht schnell wieder an der Stelle weiter, an der Sie – beispielsweise durch einen IP-Wechsel – unterbrochen wurden.

Bemerken Sie noch vor AutoSSH, dass die Verbindung unterbrochen würde, terminieren Sie diese einfach mithilfe der SSH-Escape-Sequenz Eingabetaste, Tilde, Punkt – das entspricht [Eingabe],[Alt]+[+],[Leertaste],[.] beim deutschen Tastaturlayout mit toter Tilde-Taste. AutoSSH startet die Verbindung daraufhin direkt wieder neu.

Mosh

Bei der "mobilen Shell" Mosh [2] handelt es sich um eine Neuentwicklung aus den vergangenen zwei Jahren. Sie hat zum Ziel, auf den heutigen mobilen Endgeräten das entfernte Arbeiten per Kommandozeile zu ermöglichen, ohne dass die von TCP-Verbindungen her bekannten Probleme auftreten: TCP- und damit auch SSH-Verbindungen vertragen keinen Wechsel der IP-Adresse und werden bei schlechten Verbindungen empfindlich langsamer [3].

Eine Mosh-Sitzung bricht im Gegensatz zu einer SSH-Sitzung nie endgültig ab. Deswegen braucht man mit Mosh auch keinen Wachhund plus künstliches Terminal mehr, wie das Duo AutoSSH und GNU Screen. Allerdings bedient sich Mosh intern ähnlicher Techniken wie Screen.

Sie melden sich von Ihrem Laptop, Netbook oder Linux-Smartphone aus per Mosh auf dem Server an und bleiben dort angemeldet. Dabei spielt es keine Rolle, ob Sie in der Zwischenzeit vom WLAN auf UMTS gewechselt haben, die Internetverbindung zwischendurch einmal verloren ging oder der Laptop ein, zwei Tage im Suspend war: Solange auf keinem der beiden verbundenen Geräte der Mosh-Prozess beendet wurde, ist die Verbindung sofort wieder da, sobald Sie wieder eine Netzwerkverbindung zwischen den Rechnern herstellen.

Aber Mosh bietet nicht nur bei wechselnden, sondern auch bei langsamen oder unzuverlässigen Internet-Verbindungen Vorteile, beispielsweise bei solchen über Satellit, bei schlechtem Mobilfunk-Empfang oder einem wackeligen WLAN.

Mosh für alle

Mosh ist als freie Software unter der GNU GPLv3 verfügbar. Viele gängige Distributionen stellen auch Binärpakete oder Ports bereit, darunter Debian (via Backports), Ubuntu (via PPA), Gentoo, Arch Linux (via AUR), Fedora, Mageia und Slackware. Daneben gibt es Mosh auch für Mac OS X (via Homebrew, MacPorts oder als Pkg-Paket) und in den FreeBSD Ports. An einem Android-Client arbeiten die Entwickler gerade [4]. Für diverse Umgebungen und Geräte, wie etwa das Nokia N9 oder für Cygwin unter Windows liefert das Mosh-Wiki von der Community gepflegte Installationsanleitungen [5].

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Zu Befehl: screen
    Der Desktop, unendliche Weiten – in welchem Terminal war gleich…? Mit dem Programm screen verwalten Sie mehrere virtuelle Konsolen in einem einzigen Terminal-Fenster, lassen Prozesse auf entfernten Servern weiterlaufen (während Sie längst vom System abgemeldet sind) und schauen anderen Benutzern – mit deren Zustimmung – auf die Finger.
  • Screen
    Machen Sie der Konsole Ihre Aufwartung – anstelle vieler einzelner Terminals verwalten Sie alle wichtigen Kommandozeilenprogramme in nur einem Programmfenster. Wer mag, lädt andere Benutzer zu Besuch ein und schmückt das Fenster ansprechend.
  • Beinahe-VPN per SSH
    Der in OpenSSH eingebaute SOCKS-Proxy und das auf SSH aufbauende Python-Programm Sshuttle springen in die Bresche zwischen einfachem Port-Forwarding und einem vollwertigen VPN.
  • SSH-Sitzungen steuern mit PAC
    Statt sich beim Zugriff auf entfernte Rechner mit den kryptischen Kommandos der Secure Shell herumzuschlagen, profitieren Sie bei PAC von den Komfortfunktionen des eines grafischen Verbindungsmanagers.
  • SSH-Verbindungen mit Belier vereinfachen
    Wer eine SSH-Verbindung auf einen nicht direkt erreichbaren Rechner öffnen möchte, macht für gewöhnlich einen Zwischenstopp, etwa auf einem Computer in der DMZ eines Netzwerks. Das Tool Belier vereinfacht dieses Vorgehen. Jetzt ist das Programm in Debians Unstable-Repository verfügbar.
Kommentare

Infos zur Publikation

title_2014_10

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...