[[Vorlage(Getestet, focal)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Paketquellen_freischalten/PPA: Verwenden eines PPAs] optional [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [http://mosh.mit.edu/ Mosh] {en} ('''Mo'''bile '''sh'''ell) ist eine Anwendung für den Fernzugriff auf der Kommandozeile. Es bietet die gleiche Funktionalität wie [:SSH:], beseitigt aber einige Mängel von SSH, die in der Praxis auftreten. Mosh ist dennoch kein Ersatz auf Protokollebene. SSH wird zur Authentifizierung und zum Verbindungsaufbau benötigt, Mosh übernimmt danach. Mosh ist wie SSH eine Server-/Client-Anwendung, allerdings kommt das Programm sowohl auf dem Server als auch auf dem Client zum Einsatz. Wer wer ist, findet Mosh selbst heraus. [[Bild(./Mosh_Befehlszeile.png, 300, align=right)]] Vorteile: * Man kann zwischen verschiedenen Internetverbindungen ([wikipedia:Long_Term_Evolution:LTE], [wikipedia:WLAN:], …) wechseln, ohne die Verbindung zu verlieren ([wikipedia:Handover:]) * Man kann den PC in den Ruhemodus befördern, später wieder starten und dann sofort ohne Unterbrechung weiterarbeiten * Man braucht keine Root-Rechte zum Benutzen von Mosh * Mosh verwendet ausschließlich [wikipedia:UTF-8:] und vermeidet so Zeichensatzfehler * Niedriges Bandbreitenminimum und geringe Latenz - Mosh ist auch noch benutzbar, wenn die Verbindung für SSH zu langsam ist * Falls tatsächlich gerade keine Netzwerkverbindung möglich ist, zeigt Mosh dieses an und lässt den Benutzer nicht im Ungewissen * Keine zusätzlichen offenen Ports: Der Mosh-Client meldet sich am Server via SSH an, Mosh öffnet erst dann einen UDP-Port zur Kommunikation und stellt die gleichen Möglichkeiten wie SSH bereit. (Password-Login, Public-Key-Login, …) Mosh gelingt dies unter anderem dadurch, dass [wikipedia:User_Datagram_Protocol:UDP] anstatt von [wikipedia:Transmission_Control_Protocol:TCP] als Protokoll Verwendung findet. Dadurch ist kein Handshake mehr nötig. Des Weiteren werden [wikipedia:Diff:Diffs] und [wikipedia:Patch_(Unix):Patches] verwendet, um den Bildschirminhalt abzugleichen. SSH würde immer den kompletten Bildschirminhalt übertragen, auch wenn sich nur eine Kleinigkeit geändert hätte. Die Status der Bildschirminhalte werden durchnummeriert, um zu erkennen, welchen Patch/Diff der Client bereits erhalten hat. Fehlende Pakete fallen dadurch sofort auf und es erfolgt eine Rückmeldung an den Server, um den nun eingetretenen Status als Grundlage für weitere Patches und Diffs zu verwenden. Es gibt noch ein paar weitere Kniffe in Mosh. Wenn man mehr erfahren möchte, sollte man sich die [http://mosh.mit.edu/ Projektseite] {en} ansehen, die eine ausführliche Dokumentation bietet. = Installation = In einigen Ubuntu-Versionen ist Mosh bereits enthalten. Falls nicht, installiert man das folgende Paket: {{{#!vorlage Paketinstallation mosh, universe }}} Auf dem Server ist zusätzlich folgendes Paket erforderlich: {{{#!vorlage Paketinstallation openssh-server }}} = Bedienung = Es ist generell empfehlenswert, zuerst die integrierte Hilfe aufrufen: {{{#!vorlage Befehl mosh --help }}} und die [:man:Manpage] von Mosh zu lesen. == Beispiele == * Verbindung mit einem Server herstellen: {{{#!vorlage Befehl mosh BENUTZERNAME@SERVER }}} * Wenn der lokale und der entfernte Benutzername identisch sind, reicht die Serveradresse: {{{#!vorlage Befehl mosh SERVER }}} * Den UDP-Port festlegen. Sinnvoll bei [wikipedia:Network_Address_Translation:NAT] oder einer [wikipedia:Portweiterleitung:]): {{{#!vorlage Befehl mosh -p PORT SERVER }}} * SSH-TCP-Port festlegen. Sinnvoll bei einem SSH-Server, dessen Standard-TCP-Port 22 geändert wurde, bei NAT oder einer Portweiterleitung: {{{#!vorlage Befehl mosh --ssh="ssh -p PORT" SERVER }}} * SSH-Optionen festlegen. Die Optionen sind in den [:man:Manpages] von SSH nachzulesen: {{{#!vorlage Befehl mosh --ssh="SSH-OPTIONEN" SERVER }}} = Links = * [http://mosh.mit.edu/ Projektseite] {en} * [github:keithw/mosh:Quellcode] {en} * [http://www.pro-linux.de/artikel/2/1766/unterbrechungslose-verschluesselte-verbindung-mit-mosh.html Unterbrechungslose verschlüsselte Verbindung mit Mosh] {de} - Pro-Linux, 07/2015 * [http://heise.de/-1622691 Standhaft - Persistentes Remote-Login mit mosh] {de} - Artikel ix, 07/2012 #tag: Netzwerk, System, Shell, Server, SSH, Android, Fernwartung