Obtenez de meilleures sessions à distance sur Linux avec Mosh et Tmux

L'une des forces de Linux est son orientation vers la mise en réseau, qui est en grande partie due à son héritage Unix. Il y a une raison pour laquelle Linux est un système d'exploitation de choix pour les serveurs.

Le principal moyen d'accéder à distance aux serveurs Linux est via SSH ou Secure Shell. Bien qu'il soit utile et sécurisé, il a été conçu à une époque avant que les connexions Wi-Fi et cellulaires ne deviennent monnaie courante.

Si vous déplacez votre ordinateur vers un autre réseau Wi-Fi ou le mettez en veille, vous pourriez vous retrouver déconnecté avec un écran de terminal apparemment gelé.

Pourquoi Mosh + Tmux?

Heureusement, il existe quelques outils qui rendront le calcul à distance avec SSH plus facile à utiliser et plus fiable. Vous pouvez les utiliser sur tout, d'un terminal physique dans un centre de données à un serveur domestique, sur un serveur cloud, même sur une autre machine de bureau exécutant Unix ou un système d'exploitation BSD.

Mosh est un outil au-dessus de SSH qui le rend conscient de l'évolution des connexions réseau, et tmux est un "multiplexeur de terminal" qui vous permet de conserver une session shell sur différentes connexions et même de les partager.

En savoir plus: Qu'est-ce que SSH et que représente-t-il?

Premiers pas avec Mosh

Mosh est un projet open source qui fait fonctionner SSH sur des connexions itinérantes et intermittentes, car de nombreuses connexions sans fil sont les deux.

Vous pouvez passer votre ordinateur d'un réseau câblé à un réseau câblé, à un autre réseau sans fil, et votre connexion restera active. Vous pouvez également mettre votre ordinateur portable en veille lorsqu'il est connecté et une fois le réseau reconnecté, vous pourrez taper dans la fenêtre du terminal.

Connexes: Gérer les connexions SSH à distance avec ces commandes Linux

Si vous perdez votre connexion réseau, Mosh vous dira qu'il n'a pas entendu du serveur distant. Si le serveur fait écho lentement aux caractères, il soulignera ce que vous tapez jusqu'à ce que le dernier écran revienne.

Il y a plus de détails techniques dans un article écrit par les auteurs, mais l'installer en tant qu'utilisateur est assez simple. Mosh est largement disponible dans la plupart des gestionnaires de paquets des distributions Linux. Il est également disponible en tant qu'application Google Chrome.

Installez Mosh sur Linux

Par exemple, pour installer dans Ubuntu:

 sudo apt install mosh

Bien entendu, le serveur devra également avoir le serveur Mosh installé. L'avantage de Mosh est que le composant serveur peut fonctionner en mode utilisateur, vous n'avez donc pas besoin d'être root pour l'installer.

Utiliser Mosh

Lorsque vous souhaitez vous connecter à votre machine distante, tapez simplement:

 mosh username@server

Évidemment, vous voudrez remplacer le "nom d'utilisateur" et le "serveur" par votre nom d'utilisateur et le nom de la machine à laquelle vous essayez de vous connecter.

Consultez la documentation si vous avez des besoins plus spécialisés, tels que la connexion à un autre port.

Si tout fonctionne correctement, vous aurez une session de terminal à distance, uniquement avec SSH. Vous pourrez émettre des commandes de la même manière, mais votre connexion sera plus fiable.

Premiers pas avec Tmux

Vous disposez d'une connexion de terminal à distance qui peut survivre aux changements de réseau sans fil, mais qu'en est-il lorsque vous êtes enfin connecté?

Vous pouvez exécuter une tâche qui prend beaucoup de temps, comme l'installation d'un logiciel ou même une longue tâche de compilation. Que se passe-t-il si vous êtes déconnecté. Le travail s'arrêtera probablement lorsque le terminal le fera.

De plus, vous ne pouvez effectuer qu'une seule chose à la fois dans le terminal, même avec le contrôle des tâches. Si vous souhaitez exécuter un éditeur plein écran, il occupera tout le terminal.

Tmux est une réponse à ces problèmes. C'est un "multiplexeur de terminal" qui vous permet d'exécuter plusieurs terminaux dans une seule fenêtre. C'est comme un terminal à onglets sur un bureau Linux, mais beaucoup plus flexible.

Vous pouvez détacher une session et vous déconnecter, pour y revenir plus tard et reprendre là où vous vous étiez arrêté. Vous pouvez ouvrir plusieurs fenêtres de terminal. Vous pouvez éditer un programme dans une fenêtre dans un éditeur et le tester en ligne de commande dans une autre.

L'installation de tmux est également très simple. Comme Mosh, il est inclus dans de nombreux gestionnaires de paquets de distribution Linux. Dans Ubuntu, il vous suffit de taper:

 sudo apt install tmux

Évidemment, vous devrez l'installer sur votre machine distante pour l'utiliser là-bas, mais c'est assez utile, localement également.

Une fois installé, vous lancez tmux en utilisant la commande:

 tmux

Vous vous lancerez ensuite dans une fenêtre de terminal, similaire à celle que vous avez lancée localement. Vous verrez une barre d'état indiquant dans quelle fenêtre vous vous trouvez.

Tmux divise l'écran en "fenêtres" avec plusieurs "volets", montrant leurs propres terminaux. Vous pouvez réorganiser et redimensionner ces volets, avec des fenêtres illimitées avec leurs propres volets.

Comme tmux est un programme basé sur un terminal, il est entièrement contrôlé à partir du clavier. La commande de préfixe par défaut pour exécuter des commandes dans tmux est Ctrl + B. Cela peut être modifié dans le fichier de configuration.

Le fichier de configuration utilisateur est le .tmux.conf dans votre répertoire personnel. La documentation contient plus de détails, mais le nombre de personnalisations que vous pouvez effectuer est considérable.

Tmux peut avoir une courbe d'apprentissage, mais avec d'autres programmes "difficiles" dans le monde Linux / Unix, de nombreux utilisateurs trouvent que le temps passé à apprendre ces programmes est bien dépensé dans ce qu'il leur permet de faire.

L'une des options les plus puissantes est la possibilité de détacher votre session et de la rattacher plus tard. Pour ce faire, tapez Ctrl + D. Pour rattacher, tapez "tmux attach" dans le shell, et vous vous retrouverez à votre session.

Cela signifie que votre session restera active aussi longtemps que la machine le fera. Cette méthode est également populaire pour exécuter des applications de chat comme IRC, car les gens peuvent rester longtemps dans des salles de chat. Il est également possible de partager des sessions avec d'autres personnes, comme pour la programmation en binôme.

Combiner Mosh et Tmux

La vraie puissance d'une session à distance vient des combinaisons de Mosh et tmux.

Avec Mosh, vous pouvez vous connecter à votre machine distante de n'importe où sans vous soucier de la fiabilité de votre connexion. Si vous souhaitez exécuter quelque chose qui peut prendre du temps, vous pouvez dissocier votre session et y revenir plus tard.

La combinaison de Mosh et tmux vous permettra une fiabilité et une flexibilité maximales dans vos connexions à distance. Il y a beaucoup plus à explorer dans tmux seul qui libèrera la puissance de vos sessions de terminal.