Qu'est-ce que le délai d'expiration par défaut sur SSH ?
Secure Shell est une méthode de gestion à distance d'un ordinateur ou d'un serveur disponible pour Linux, OS X et Windows. Une session SSH expire à certains intervalles, car une session SSH ouverte et sans surveillance présente un risque de sécurité. Si vous êtes inactif pendant un certain temps, la connexion se coupe et vous serez obligé de vous reconnecter. Ce délai est défini par les paramètres TCP de votre système, mais peut être remplacé dans les paramètres du serveur ou dans les paramètres du client. Si vous constatez que votre connexion SSH expire trop souvent, vous pouvez toujours modifier votre configuration SSH pour vous donner plus ou moins de temps d'inactivité.
Délai TCP
Le délai d'attente de votre serveur est défini par défaut sur le délai d'attente TCP de votre système. En effet, les serveurs SSH sont automatiquement configurés pour utiliser TCPKeepalive, qui envoie une sonde à une heure prédéfinie lorsque le système est inactif pour vérifier que la connexion est toujours là. Cette valeur par défaut varie en fonction de votre système. Certains systèmes utilisent une valeur par défaut aussi courte que cinq secondes, et d'autres vont jusqu'à deux heures; la moyenne est généralement d'environ trois à cinq minutes. Votre connexion SSH, si elle n'a pas été modifiée pour changer le délai d'attente côté serveur ou côté client, utilisera ce délai. Les paramètres du serveur ou du client remplaceront ce délai.
Paramètres de délai d'attente à l'échelle du serveur
La modification du délai d'attente à partir du fichier sshd_config modifiera les options de délai d'attente pour chaque client qui se connecte au serveur. Les administrateurs système peuvent accéder à ce fichier dans /etc/ssh/sshd_config. Si vous utilisez un terminal et que vous êtes à l'aise avec un éditeur de terminal, vous pouvez le modifier entièrement dans le terminal en saisissant "sudo nano /etc/ssh/sshd_config". Ajoutez l'option "ClientAliveInterval" qui indique au serveur d'envoyer un paquet de données au client pour vérifier l'activité. Vous devriez également envisager d'ajouter "ClientAliveCountMax" ; cela indique au serveur combien de fois il doit vérifier sans obtenir de réponse. Ne placez pas de signe dièse devant ceux-ci; les lignes précédées de signes dièse sont considérées comme des commentaires et ne sont pas des options actives sur le serveur. Par exemple, si vous vouliez définir votre ClientAliveInterval sur cinq minutes et votre ClientAliveCountMax sur deux, cela pourrait ressembler à ceci :ClientAliveInterval 300ClientAliveCountMax 2
Délai d'attente basé sur le client
If you're using a client like Putty, you can change the timeout by clicking the "Connection" option on the sidebar and fill in your preferred time in the text box beside "Seconds Between Keepalives" in seconds. This should be based on entirely how long you think you'll be inactive between activity. You can also change this manually by opening your client-side setting files at /etc/ssh/ssh_config – note the difference between the server file "sshd_config". Add the setting "ServerAliveInterval" and set in seconds how often you want to the client to send packets to keep the connection active.
Risks of Changing Timeout
Obviously changing timeout is a matter of convenience – it allows you to multitask without having to frequently renew your login to your SSH server. However, this means that you need to remain more vigilant at your desktop. If you walk away from your computer with an SSH connection open, anyone can sit down and access your server. While leaving an SSH connection open for home use is less concerning than when you're doing so for you, being in the habit of leaving your connection open can have quite horrible consequences in the wrong hands.