User Tools

Site Tools


notes:ssh-session-timeout

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.

notes/ssh-session-timeout.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1