Maintenir une connexion SSH ouverte grâce à "autossh".

Plop les bovins.

Si vous utilisez SSH vous avez déjà du râler les fois où vous avez perdu la connexion qui vous reliait à votre tunnel. Vous avez du râler bien plus encore quand celui-ci se trouvait à plusieurs kilomètres de votre domicile.
Je vous avoue que cela m’est déjà arrivé plusieurs fois et je regrette de ne pas avoir entendu parler d’autossh avant aujourd’hui (je n’ai pas trop cherché non plus à vrai dire).

Je suis tombé sur un billet qui parlait de ce logiciel, mais comme il n’était pas très explicite j’ai décidé de fouiner un peu pour en savoir plus. Je suis alors tombé par hasard sur un exemple très bien détaillé issu du  Wiki Arch Linux.

J’ai pensé vous en faire profiter aussi, ça peut toujours servir. Nous allons donc reprendre l’exemple décrit dans le wiki afin de mieux comprendre pourquoi et comment autossh.

Commençons par détailler une commande précise :

autossh -M9042 -f -R 1234:localhost:23 monserveur.mondomaine.be

Voyons voir cela de plus près :

autossh : Rien de particulier à dire puisqu’il s’agit du soft qu’on utilise.

– M9042 : Spécifie le port que l’on désigne pour le monitoring. Il doit être libre et supérieur à 1024.

-f : Défini l’exécution de SSH en toile de fond.

-R  : Ici on défini qu’il s’agit d’un tunnel distant (d’où l’importance d’autossh), pour un tunnel local on aurait choisi -L.

Nota : Il s’agit bien d’un « R » et d’un « L » en majuscules. Faites toujours attention à la syntaxe de vos arguments sous GNU/Linux. Ce dernier considère les deux comme étant des caractères distincts. « r » et « R » sont pour lui deux arguments différents, ayant des actions et des conséquences différentes.

Ne vous trompez pas …

1234: : Représente le port à utiliser sur le serveur « distant ».

localhost: : On spécifie la sortie du tunnel (le poste client). Vous pouvez spécifier à la place l’adresse IP d’une autre machine sur le réseau local, (192.168.0.4) par exemple.

Nota (bis) : Si vous vous arrêtez 2 minutes pour essayer de comprendre la citation ci-dessus, vous allez vous rendre compte d’un truc génial. SSH vous permet de demander (poliment) à une autre machine de votre réseau, via votre poste de travail, d’ordonner une action précise à une troisième machine (distante ou locale).

Cool non ?

23 : Détermine le port à utiliser sur le serveur local, en gros c’est sur ce port que l’on va se connecter sur localhost (dans notre salon).

monserveur.mondomaines.be : C’est le serveur distant auquel nous allons nous connecter (depuis notre salon) .

Vous allez me dire normalement à ce moment précis que SSH suffit amplement pour faire ça et que je vous gonfle avec ce billet. Attendez un peu quand même avant de tirer les pis d’la Noireaude…

On va détailler le contexte maintenant, c’est là que ça devient funky.

Vous êtes au travail et vous avez envie d’ouvrir une connexion sur le serveur distant (A). Le but étant de pouvoir bosser dessus à distance depuis votre salon, via un client (B). Vous me suivez ?

Vous ouvrez donc un tunnel sur la machine (A) avant de quitter les lieux.

Vous vous tapez les bouchons, vous vous faites engueuler en rentrant car vous avez oublié le pain et une fois tranquille, vous décidez de vous connecter pour bosser un petit peu à la fraîche.

Vous établissez donc la connexion sur (A) depuis « votre salon » avec le client (B). Mais au bout de 5 minutes (A) rencontre un problème et redémarre.

Avec SSH vous l’auriez dors et déjà dans l’os, « sec et net ».

La connexion ayant été coupée votre tunnel se serait fait la malle pour de bon. Adieux veaux, vaches, cochons …

Ballot non ?

C’est là qu’autossh va vous sauver la mise.

Le bel animal va en effet se rendre compte que la connexion à été interrompue sur (A) et va la relancer tout seul comme un grand.

Il ne vous reste plus qu’à relancer de votre côté la connexion depuis (B) pour retrouver le saccro saint tunnel. Comme vous pouvez le constater autossh peut s’avérer très utile.

Si cet exemple vous a convaincu et que vous voulez installer autossh sur Ubuntu rien de plus facile. Il suffit d’entrer un simple :

sudo apt-get install autossh

Amusez vous bien.

Moo !!!

Image