Il existe deux options liées à l'inactivité de ssh dans /etc/ssh/sshd_config fichier :
ClientAliveInterval ClientAliveCountMax
Ainsi, la valeur du délai d'attente est calculée en multipliant ClientAliveInterval par ClientAliveCountMax.
timeout interval = ClientAliveInterval * ClientAliveCountMax
La signification des deux paramètres peut être trouvée dans la page de manuel de sshd_config :
# man sshd_config ClientAliveCountMax Sets the number of client alive messages (see below) which may be sent without sshd(8) receiving any messages back from the client. If this threshold is reached while client alive messages are being sent, sshd will disconnect the client, terminating the session. It is important to note that the use of client alive messages is very different from TCPKeepAlive (below). The client alive messages are sent through the encrypted channel and therefore will not be spoofable. The TCP keepalive option enabled by TCPKeepAlive is spoofable. The client alive mechanism is valuable when the client or server depend on knowing when a connection has become inactive. The default value is 3. If ClientAliveInterval (see below) is set to 15, and ClientAliveCountMax is left at the default, unresponsive SSH clients will be disconnected after approximately 45 seconds. This option applies to protocol version 2 only. ClientAliveInterval Sets a timeout interval in seconds after which if no data has been received from the client, sshd(8) will send a message through the encrypted channel to request a response from the client. The default is 0, indicating that these messages will not be sent to the client. This option applies to protocol version 2 only.
Il existe 2 méthodes pour configurer le délai d'inactivité. Par exemple, dans cet article, nous allons configurer un intervalle de déconnexion automatique de 10 minutes.
Méthode 1
1.Configurez la valeur du délai d'attente dans le fichier /etc/ssh/sshd_config avec les valeurs de paramètre ci-dessous.
# vi /etc/ssh/sshd_config ClientAliveInterval 5m # 5 minutes ClientAliveCountMax 2 # 2 times
2. Redémarrez le service ssh après avoir défini les valeurs.
# service sshd restart
Cela ferait expirer la session en 10 minutes car la valeur ClientAliveCountMax est multipliée par la valeur ClientAliveInterval.
Méthode 2
1. Vous pouvez définir la valeur ClientAliveCountMax sur 0 et la valeur ClientAliveInterval sur 10m pour obtenir le même résultat.
# vi /etc/ssh/sshd_config ClientAliveInterval 10m # 10 minutes ClientAliveCountMax 0 # 0 times
2. Redémarrez le service ssh après avoir défini les valeurs.
# service sshd restart
Différence entre la méthode 1 et la méthode 2
Il y a une petite différence entre ces deux méthodes. Pour la première méthode, sshd enverra des messages, appelés ici Client Alive Messages, via le canal crypté pour demander une réponse au client si le client est inactif pendant cinq minutes. Le démon sshd enverra ces messages au maximum deux fois. Si ce seuil est atteint pendant l'envoi des messages Client Alive, sshd déconnectera le client.
Mais pour la deuxième méthode, sshd n'enverra pas de messages au client actif et mettra fin à la session directement si le client est inactif pendant 10 minutes.