SSH und unzuverlässige Leitungen

Axel Beckert

ETH Zürich / Debian

abe@debian.org
http://noone.org/abe/

Motivation

SSH ist mühsam, falls

  • sich die IP ändert,
  • die Latenz sehr hoch ist und man schnell tippt, oder
  • wenn man den Laptop schlafen legt;

z.B. bei Verbindungen über

  • GSM, Satelliten-Link (SkyDSL, etc.),
  • wackeliges WLAN, oder
  • verstopfte Leitungen.

AutoSSH

  • Wrapper um SSH
  • Testet via zwei Tunnels zur Schleife (1x "-L", 1x "-R"), ob noch Daten durch die Verbindung gehen. Startet die SSH-Verbindung neu, falls keine Daten mehr durch den Tunnel gehen
  • Manuelles Neustarten mit <Enter>~. (SSH Escape Key)
  • Ideal zusammen mit GNU Screen (oder tmux): autossh -t host "screen -RD"
  • Abwechselnde Clients (z.B. für Screen-Sessions) problemlos möglich
  • Funktioniert mit OpenBSD, Linux, Solaris, Mac OS X, Cygwin, AIX und vermutlich allen anderen BSDs.

Mosh: Einführung

  • "A State-of-the-Art Good Old-Fashioned Mobile Shell"
  • Sagt Ausgabe anhand von Eingabe hervor, falls die Verbindung lagt (intelligentes "local echo"; deaktivierbar)
  • Nutzt SSH für Authentifizierung, Autorisierung, Starten des Mosh-Servers und Schlüsseltausch; honoriert .ssh/config
  • Nutzt untendrunter UDP: Änderung der Client-IP nicht relevant
  • GNU Screen oder tmux nicht notwendig, aber möglich

Mosh: Technik

  • Detach und Reattach implizit bzw. transparent, mehrere abwechselnde Clients nur mit Umständen möglich
  • State Synchronization Protocol (SSP): Für die Anzeige zu späte bzw. nicht mehr relevante Daten werden nicht übertragen.
  • Braucht ncurses, leert das Terminal beim Start ähnlich wie GNU Screen.
  • Unterstützt ausschliesslich UTF-8
  • Eigentliche Verbindung AES-128 (OCB Modus; OpenSSL oder eigene Implementation) verschlüsselt über UDP
  • Bisher wenig konstruktive Kritik an der Verschlüsselung

Mosh: Nachteile, FAQ und Zukunftsaussichten

  • Noch kein IPv6-Support. Braucht Support für Änderung der Server-IP. Das widerum braucht tiefgreifendere Änderungen.
  • Noch kein SSH-Agent-Forwarding.
  • (Noch) kein Port-Forwarding.
  • (Noch) kein Datei-Transfer.

Mosh: Verfügbarkeit

  • Verfügbar für Debian (Unstable, Testing, Stable Backports), Ubuntu (Precise, Oneiric PPA), Fedora ab 15, Gentoo, Arch Linux, Slackware, Mageia 2, Exherbo, Meego (Nokia N9), FreeBSD Ports, pkgsrc (NetBSD, DragonFlyBSD, etc.), MacOS X (.pkg, Homebrew, MacPorts und fink), Cygwin
  • Experimenteller Android-Client auf IrssiConnectBot-Basis
  • iOS-Client mittlerweile im Bereich des Möglichen, nachdem Lizenz-Probleme (GPLv3 vs iTunes-Regeln) ausgeräumt wurden.

Mosh: Presseschau

Links