Pour des sessions SSH qui durent

Par Jean-François VIAL, le lundi 23 février 2009 – Mis à jour le Vendredi 24 avril 2009
Difficulté : 2.5/5 — Categorie : Choses utilesMots clés : ,

utilities-terminalQui n'a jamais été irrité de voir une session SSH "bloquée" car laissée sans activité ?
Qui n'a jamais eu son système bloqué pendant quelques instants car un montage de système de fichiers via SSH avait été déconnecté faute, là aussi, d'activité ?

À ce fléau qu'est la déconnexion intempestive, une solution existe, et elle est très simple : il suffisait de lire le man...

Le client SSH, peut envoyer des paquets "keep-alive" à intervalles réguliers lors de la session. Lorsque le serveur reçoit ces paquets, il sait que, bien que le client ne génère pas d'activité, il faut garder la connexion active. De même, le serveur SSH, peut lui aussi envoyer ces paquets... sauf que, par défaut, ils ne le font pas. Pour les forcer à le faire, il suffit d'éditer les fichiers de configuration du client et/ou du serveur, selon à quoi on a accès et selon ce qu'on veut faire. Le mieux est de se contenter du client lorsque c'est possible, évidement.

Pour activer la fonction coté client, écrire :

Host *
    ServerAliveInterval 60

dans "~/.ssh/config" (créer le fichier au besoin) pour appliquer à son propre utilisateur ou dans "/etc/ssh/ssh_config" pour l'activer sur tout le système, ou alors en en argument de l'option "-o" lors de l'appel à "ssh".

Coté serveur, même chose, mais l'option s'appelle "ClientAliveInterval".

"Host *" activera l'option sur tous les hôtes, mais vous pourriez utiliser un hote spécifique et créer ainsi une règle pour chaque hôte... le "60" indiquant "60 secondes", mais vous pourriez indiquer plus ou moins selon vos besoins.

Commentaires

1 commentaire :

  1. Très pratique effectivement, ca se configure également très facilement dans le client SSHnuke

Ajouter un commentaire