Mosh : Mobile Shell

Devoir utiliser SSH avec une connexion instable, l’horreur. Les caractères s’affichent avec une latence de plusieurs secondes.. La session saute après quelques minutes de déconnexion totale.. Bref, l’enfer. Cependant, une solution existe : Mosh !

Mosh — Mobile Shell

Mosh est une application, open-source élaborée au sein du MIT, qui permet de garder une session distante ouverte en étant connecté par intermittence. C’est à dire que vous pouvez passer d’un wifi à un autre sans vous soucier de perdre la main sur votre SSH, Mosh récupérera la connexion aussitôt reconnecté (même si votre ip a changée, pas de soucis).

Comment ça marche ?

Mosh se connecte au début sur l’hôte distant en SSH pour initialiser la connexion. En fait, il lance un serveur mosh (mosh-server) sur la machine distante. Ensuite, le client mosh (mosh-client) se connecte dessus. Les communications entre les deux s’effectuent en UDP et sont chiffrées en AES-128 (OCB mode).

Killer feature

La killer feature de Mosh est de gérer plus intelligemment l’affichage. De chaque côté, Mosh possède un “état” et dès que la connexion est rétablie, ceux-ci se synchronisent entre-eux.  Ainsi, vos frappes apparaissent directement à l’écran, reçue par l’hôte ou non!

Installation et utilisation

Installez Mosh sur la machine distante et sur votre machine. Il vous suffit ensuite d’utiliser mosh de la même façon que SSH (mosh user@host) ! Remarquez au passage que vous n’avez pas spécialement besoin d’avoir un accès superuser sur la machine pour installer mosh(-server).

Notez cependant que Mosh ne supporte que l’UTF-8. Et ne supporte pas X11 forwarding, ainsi que le port forwarding.

Utilisateur d’iTerm 2 ?

Si vous utilisez iTerm 2 comme moi, il vous faudra aller dans l’onglet “Profiles” ensuite régler celui-ci pour que ce dernier utilise bien l’UTF-8 (dans le sous-onglet “Terminal”) ainsi que le “Report Terminal Type” xterm.

Conclusion

J’espère vous avoir convaincu d’essayer Mosh, je l’utilise personnellement presque en permanence à la place de SSH. Le fait de pouvoir passer d’un réseau à un autre rapidement et sans devoir se reconnecter est un réel gain de temps. L’essayer, c’est l’adopter!

Comments