# Empêcher les timeout ssh Lorsqu’on est connecté en ssh à un ordinateur distant et qu’on laisse la connexion inactive pendant un certain temps, il arrive que l’on soit déconnecté. On se retrouve alors avec un message du style : ``` Read from remote host buzut.fr: Connection reset by peer Connection to buzut.fr closed. ``` Deux approches permettent de contourner ce désagrément : l’approche serveur, et l’approche cliente. #### Serveur Il est possible de configurer **ClientAliveInterval** et **ClientAliveCountMax**. Il existe bien un paramètre **TCPKeepAlive**, mais il fonctionne sur la couche transport et non sur la couche applicative. C’est donc un petit peu moins fiable [en] et on préférera le désactiver au profit de **ClientAliveInterval** ou **ClientAliveCountMax**. * **ClientAliveInterval** envoie un message au client ssh après x secondes sans activité (0 = jamais). Si le client répond au serveur, la connexion est maintenue. * **ClientAliveCountMax** quant à lui, concerne le nombre maximal de requêtes **ClientAliveInterval** sans réponse que tolérera le serveur avant de fermer la connexion. Ajouter les lignes suivantes à `/etc/ssh/sshd_config` : ``` ClientAliveInterval 600 ClientAliveCountMax 0 ``` Puis redémarrer ensuite le serveur en faisant ``` service ssh restart. ``` #### Client Cette solution est très pratique si on a pas un accès root au serveur. Il va s’agir d’utiliser la directive **ServerAliveInterval**. Cette dernière va faire en sorte que le client envoie toutes les x secondes une requête au serveur **ssh** pour lui signaler qu’il est toujours en vie. Ainsi, on évite la déconnexion par timeout. Pour cela ajouter dans `/etc/ssh/ssh_config` sur le client et la ligne suivante : ``` ServerAliveInterval 120 ``` **ssh** ne devrait désormais plus se couper.