Wer ab und an ssh benutzt und die sessions länger offen hält wird festgestellt haben, dass es denen gar nicht gefällt, wenn man den Rechner kurz schlafen legt, oder das Internet weg geht oder überhaupt irgendwas passiert was keine Standleitung ist.

Abhilfe dagegen schafft mobile-shell (kurz mosh). Installiert man das auf Server und Client kann man es als ssh-dropin verwenden.

Es hat den großen Vorteil, dass es zum einen die Verbindung offen hält und vor allem, wenn das Netz mal weggeht (dazu gehört auch eine Routen-Änderung wegen eines VPNs z.B), dann verbindet sich mosh einfach wieder neu.

Für die Momente in denen man nur sehr wackeliges Netz hat gibt es ein Feature das die Eingabe erstmal entgegen nimmt und dann gesammelt die Ausgabe wieder zurück gibt. Kein “ins-leere Tippen mehr”

Das ist alles total praktisch, hat nur einen Haken: man braucht zu der Software noch einen offenen UDP Port. Normalerweise sucht sich mosh einen Port zwischen 60000 und 61000. Ich habe mir von den netten Leuten bei uberspace jeweils einen Port freigeben lassen. Die waren aber dummerweise nicht in diesem Bereich. Das bedeutet ich muss beim Verbinden immer den Port mit angeben. Sehr unschön zumal ich mir den eh nicht merken kann. Eine Lösung wäre zum Beispiel ein alias. Aber den muss ich mir dann auch wieder merken.

Nach kurzem suchen bin ich dann auf ein Python script gestoßen, welches ein Wrapper für mosh ist und eine Konfigurationsdatei hat. Sehr gut. Damit kann ich mir den Port einfach darein schreiben und fertig. Das Skript heißt moshy. Ich habe mir in meiner .zshrc einfach einen alias angelegt alias mosh="moshy" und fertig ist das mosh mit config datei.

Leider hat moshy gerade noch einen Bug. Ich habe ihn gefixt und dem autor einen Pull-Request geschickt. Mal sehen ob er ihn annimmt.