Inhoudsopgave:
Als technisch professional kent u ongetwijfeld Secure Shell (SSH) en gebruikt u deze regelmatig om verbinding te maken met externe systemen. Hoewel het een geweldig hulpmiddel is, gaat SSH ervan uit dat u een betrouwbare bekabelde verbinding hebt. Het werkt niet altijd zo goed op draadloze verbindingen, die onbetrouwbaar kunnen zijn. Een nieuw hulpmiddel dat is veranderd, is Mosh of Mobile Shell, waarmee gebruikers verbinding kunnen maken met externe systemen en verbonden kunnen blijven, zelfs wanneer het netwerk uitvalt of u van netwerk wisselt.
Waarom Mosh?
Secure Shell is onmisbaar voor beheerders, programmeurs en power users die moeten inloggen op servers, zowel in de hal als in het hele land. Het is een veilige, gecodeerde vervanging voor Telnet. Het is een geweldig hulpmiddel, maar het werd ontworpen in de jaren 90, een tijdperk voordat mobiele computers op wifi gemeengoed werden. SSH gaat uit van een betrouwbare bekabelde verbinding, wat niet altijd het geval is wanneer gebruikers mobiel gaan. Wi-Fi-connectiviteit is, zoals veel mensen hebben gevonden, vaak onregelmatig en het is onmogelijk om verbindingen te wijzigen, bijvoorbeeld van Wi-Fi naar LTE, zonder een verbinding te verbreken.
Andere keren is het niet de schuld van de verbinding, maar eerder de gebruiker. Of, zoals ze in IT zeggen, het is een PEBKAC (er bestaat een probleem tussen toetsenbord en stoel). Mijn favoriet aller tijden is het deksel sluiten en vergeten dat ik via SSH ben aangemeld bij een externe machine. Ik open het deksel en typ het terminalvenster en er gebeurt niets. Het enige dat ik kan doen, is de sessie beëindigen en opnieuw inloggen. Het is vervelend, maar ik heb het talloze keren gedaan en ik weet zeker dat jij dat ook hebt gedaan.
Veel mensen proberen dit te verminderen door programma's als GNU Screen en tmux te gebruiken. Dit zijn terminal-multiplexers die je niet alleen zoiets als browsen met tabbladen voor de opdrachtregel geven, maar je sessie ook kunnen behouden voor het geval je verbinding verbroken wordt. Log gewoon opnieuw in en u kunt verdergaan waar u was gebleven. Hoe handig deze programma's ook zijn, de problemen met SSH zelf blijven nog steeds bestaan.
Ik nam ontslag bij mijn SSH-lot, maar op een dag kwam ik een nieuw programma tegen op een shell-server waar ik mee rondhang. Mosh is een poging om SSH te verbeteren, waardoor het geschikt is voor gebruik op laptops. Het is ontwikkeld door enkele slimme mensen bij MIT, de mensen die ons Lisp hebben gebracht (dus ze weten waarschijnlijk iets goeds als ze er een zien). Keith Winstein, een van de belangrijkste ontwikkelaars, heeft een video gemaakt die laat zien hoe het werkt.
De makers van Mosh beschrijven het als een vervanging voor SSH die robuuster en responsiever is, vooral via wifi, mobiele en lange-afstandsverbindingen.
Hoe het werkt
Mosh gebruikt een nieuw protocol genaamd het State Synchronization Protocol (SSP). Dit bouwt voort op traditionele externe verbindingsprotocollen zoals Telnet en SSH. Onder SSH stuurt de server slechts enkele bytes stroomafwaarts naar de client om te worden geïnterpreteerd.
SSP voegt nog een laag toe. De server en de client houden bij wat is verzonden met behulp van volgnummers. Als de server een volgnummer krijgt dat hoger is dan het nummer dat het eerder heeft verzonden, is het slim genoeg om erachter te komen dat de client naar een andere verbinding is verhuisd. Dit betekent dat het gemakkelijk is om van Wi-Fi-netwerk naar Wi-Fi-netwerk te gaan, of van een Wi-Fi-netwerk naar een mobiel netwerk, of van een Wi-Fi-netwerk naar een bekabelde verbinding - enzovoort.
Een andere leuke functie die Mosh biedt, is realtime karakterecho. Als u SSH gebruikt, kunt u meestal een vertraging tussen het typen en wachten tot uw tekens op het scherm verschijnen terwijl de server weergeeft wat u naar u typt.
Het krijgen
Als je geïntrigeerd bent, zul je blij zijn te weten dat het installeren van Mosh eenvoudig genoeg is. De meeste grote Linux- en Unix-distributies hebben het in hun repositories. De Mosh-startpagina toont voorbeelden met Debian en Ubuntu, evenals Gentoo, Arch en Fedora. Omdat Mac OS X op Unix is gebaseerd, kunnen ook Mac-gebruikers meedoen. Er is een native pakket en mensen die het op de Mac willen compileren met Homebrew en MacPorts. Als uw systeem Mosh niet als pakket heeft, kunt u het zelf downloaden en compileren als dat nodig is.
Wanneer je de client hebt geïnstalleerd, ben je klaar om Mosh aan de slag te laten gaan en in te loggen. Je logt in precies zoals je met SSH doet. In feite verwerkt Mosh de logins niet; het geeft de inloginformatie door aan SSH. Dit is handig als u de openbare coderingsfuncties van SSH gebruikt om veilig in te loggen zonder dat u een wachtwoord nodig hebt.
Er is echter één vangst. U hebt de Mosh-server nodig om verbinding te maken. Gelukkig hoef je geen superuser te zijn om het te installeren. U kunt het zelfs in uw thuismap plaatsen en op die manier starten als u de sysadmin niet kunt overhalen om het te installeren. Mosh is nog steeds nieuw, dus misschien wordt het ooit zo alomtegenwoordig op servers als SSH is.
Nog iets: Mosh verwacht dat uw terminal UTF-8 ondersteunt. Zowat alle moderne terminalemulators doen dat, maar mogelijk moet u de omgevingsvariabele $ LANG instellen voordat de server op het externe systeem de verbinding accepteert.
Blijven leven
Nu u bent verbonden, kunt u aan de slag gaan met het coderen of bewerken van uw configuratiebestanden of het beheren van externe machines, thuis, op het werk, in de trein of op kruishoogte.
U kunt testen hoe robuust Mosh is door uw Wi-Fi los te koppelen. Mosh zal een bericht bovenaan de terminal weergeven dat er geen verbinding is, samen met een timer. Maak opnieuw verbinding en je sessie gaat verder waar het was gebleven. Het werkt ook als u het deksel van uw laptop sluit.
Mosh is nog beter in combinatie met een terminal-multiplexer zoals GNU Screen of tmux. Ze zijn in het verleden gebruikt zoals Mosh is, om SSH-sessies actief te houden via onbetrouwbare verbindingen, maar ze bieden nog steeds enkele voordelen bij gebruik met Mosh. U kunt bijvoorbeeld van de ene terminal loskoppelen, uitloggen en inloggen vanaf een andere machine, de multiplexer oproepen en doorgaan. Dit is erg handig voor lange taken. Het is ook populair voor fervente gebruikers van IRC om verbonden te blijven op een shell-server en indien nodig los te koppelen.
Tijd voor Mosh?
Nu je een idee hebt gekregen hoe Mosh je mobiele login op afstand veel beter kan maken, waarom probeer je het dan niet zelf?