GNU/Linux >> Tutoriels Linux >  >> Linux

Débarrassez-vous des problèmes de connectivité réseau dans SSH avec Mosh

Pour se connecter à un système distant, nous avions l'habitude d'utiliser telnet. En raison des graves vulnérabilités de sécurité de telnet, il a été remplacé par ssh .

SSH permet aux utilisateurs de se connecter à des systèmes distants avec/sans mot de passe mais à l'aide d'une clé privée et d'une clé publique. Le principal avantage de SSH est son cryptage. Il permet à l'utilisateur de communiquer avec le système distant sans crainte d'écoute ou de falsification.

Les défauts de SSH

Mettre en marche ssh en termes simples, il s'agit d'une connexion TCP de paquets cryptés.

SSH envoie les paquets entre le système local et distant, tout comme telnet mais le contenu du paquet est crypté. Il n'y a pas de mise en mémoire tampon et de traitement au milieu. Même les caractères que vous saisissez sont envoyés au système distant, puis le système distant envoie sa réponse (qui contient le caractère saisi à afficher à l'écran) au système local.

Pouvez-vous voir tout cet aller-retour pour voir un seul caractère que vous avez tapé ???

"""Il envoie/reçoit simplement des paquets chiffrés “””

Mais que se passe-t-il lorsque le réseau est déconnecté ou est très lent. La connexion TCP sera interrompue et le système local restera en suspens sans aucune erreur. Ce n'est pas le système Linux gelé typique, juste un terminal gelé avec la connexion SSH déconnectée.

Vous avez peut-être été frustré par ssh dans l'une des situations ci-dessous.

  1. Votre connexion réseau est déconnectée. Votre session ssh n'affichera rien. Lorsque vous tapez dans le shell, vous remarquerez que rien ne se passe. Ensuite, vous vérifierez l'icône Internet/Wi-Fi.
  2. Lorsque votre connexion Internet est lente, la même situation se présentera. Les caractères que vous saisissez dans le système local peuvent apparaître après quelques secondes ou, dans le pire des cas, même quelques minutes.
  3. Lorsque vous êtes inactif pendant une longue période, il arrive que SSH cesse de fonctionner même si votre ordinateur n'était pas inactif et que la connexion réseau était active.

Pour résumer, SSH offrait une grande sécurité mais peu de convivialité dans les connexions à latence élevée. Vous pouvez utiliser la commande nohup sous Linux pour continuer à exécuter les commandes même après l'arrêt de la connexion SSH, mais ce n'est pas vraiment une bonne solution. Vous savez ce qui est mieux ? Mosh !

Mosh :SSH sans les problèmes de connectivité

Mosh signifie MObile SHell . Il donne une solution simple à tous les problèmes mentionnés ci-dessus. Il utilise une technique similaire à la mise en mémoire tampon et à la synchronisation des éléments (objets) à l'aide du protocole SSP (state-Synchronization Protocol). Et pour transmettre des paquets, il utilise UDP qui est un protocole sans connexion.

Pour savoir comment fonctionne mosh, lisez sa page officielle.

Pour éviter de réinventer la roue, mosh utilise ssh pour l'authentification. Vous n'avez donc pas besoin de créer de nouvelles paires de clés ou d'utilisateurs, etc. Ainsi, chaque avantage de sécurité que ssh a est aussi avec mosh . Cela implique également que vous devez avoir une configuration SSH fonctionnelle à la fois dans le système local et distant.

Installer mosh sur Ubuntu et d'autres distributions Linux

Si vous n'avez pas installé et configuré ssh, veuillez apprendre les bases de SSH et activer SSH sur Ubuntu ou quel que soit le Linux que vous utilisez.

Après vous être assuré que vous disposez d'une configuration SSH fonctionnelle, l'installation de mosh est une tâche simple. Le package que vous devez installer est le même sur les systèmes locaux et distants.

Pour installer mosh dans les distributions Linux basées sur Ubuntu ou Debian, vous pouvez utiliser les commandes suivantes, une par une :

sudo apt update
sudo apt install mosh

Mosh est disponible dans toutes les principales distributions Linux. Utilisez le gestionnaire de paquets de votre distribution pour l'installer.

Une fois l'installation de mosh terminée, tout est prêt côté client/local. Du côté distant (c'est-à-dire le serveur), vous devez effectuer une configuration simple.

Configurer mosh sur un serveur distant

Rappelez-vous la partie où j'ai dit mosh utilise UDP ? Par défaut, mosh utilise les ports UDP 60000-61000. Donc, si vous avez un pare-feu sur le système distant, vous devez réécrire la règle de pare-feu pour ces ports comme suit. ouf est le gestionnaire de pare-feu.

sudo ufw allow 60000:61000/udp

Connectons-nous via mosh

À partir de maintenant, nous avons un SSH fonctionnel, mosh qui est installé sur les deux systèmes, et une règle de pare-feu qui autorise le trafic UDP sur les ports 60K-61K sur le serveur distant.

Pour utiliser mosh, c'est aussi simple que ci-dessous

mosh [email protected]

Ouais! Je sais. C'est aussi simple que ssh.

Mais que se passe-t-il si j'ai besoin de spécifier le port ssh autre que le port par défaut ou d'utiliser des options spécifiques à ssh. mosh a ce qu'il vous faut. Il vous suffit de passer l'option "ssh option [argument] ” à l'option –ssh .

Par exemple, je dois me connecter à ssh s'exécutant sur le port 2222 sur le serveur distant. Cela peut être fait comme suit.

mosh [email protected] --ssh="ssh -p 2222"

Ça y est, les systèmes sont connectés. Maintenant, pour réaliser la puissance de mosh, essayez d'éteindre et de rallumer votre connexion réseau. Vous pouvez voir que mosh fonctionne toujours. Comme c'est cool !

J'espère que vous avez aimé ce tutoriel sur Mosh. Depuis que j'ai découvert Mosh, j'ai cessé d'utiliser ssh pour me connecter à des serveurs distants. Et toi? Avez-vous aimé Mosh ou préférez-vous toujours SSH ? Partagez vos opinions.


Linux
  1. Démarrer avec NetworkManager sous Linux

  2. Diagnostiquer les problèmes de connectivité avec la commande Linux ping

  3. Telnet à un port pour tester la connectivité réseau

  4. Dépannez votre réseau avec tcpdump

  5. Automatisation du mot de passe SSH sous Linux avec sshpass

Connexions SSH basées sur des clés avec PuTTY

Démarrer avec GNUPlot

Tutoriel Podman - Premiers pas avec Podman

Secrets plasma :connectivité SSH dans Dolphin

Network Manager sur Linux avec des exemples

Comment obtenir la taille d'un fichier/dossier avec SSH sous Linux ?