Pour être clair :je recherche une solution que je lance une fois après m'être connecté, puis je veux utiliser ce terminal, partir, revenir deux heures plus tard et continuer à travailler, sans rien taper avant de partir.
Le problème est qu'il y a quelque chose (généralement un pare-feu ou un équilibreur de charge) qui supprime les sessions inactives. Si vous configurez des keepalives de session, les keepalives empêcheront les périphériques réseau de considérer la session comme inactive.
Correction Linux/Unix/Cygwin OpenSSH :
La solution la plus simple consiste à activer les keepalives du client ssh ; cet exemple enverra un ssh keepalive toutes les 60 secondes :
ssh -o "ServerAliveInterval 60" <SERVER_ADDRESS>
Si vous souhaitez l'activer sur toutes vos sessions, mettez ceci dans votre /etc/ssh/ssh_config
ou ~/.ssh/config
:
ServerAliveInterval 60
Pour plus d'informations, consultez le ssh_config
page de manuel
Correction de mastic :
Enregistrez ceci dans vos "Paramètres par défaut" PuTTY...
- Cliquez sur Connexion
- Tapez 60 dans "Secondes entre keepalives"
En plus de la réponse de Mike Pennigton, je voudrais vous faire part de ServerAliveCountMax
aussi.
- Le
ServerAliveInterval
enverra un keepalive toutes les x secondes (la valeur par défaut est 0 , qui désactive cette fonctionnalité si elle n'est pas définie sur autre chose). - Ce sera fait
ServerAliveCountMax
fois si aucune réponse n'est reçue. La valeur par défaut deServerAliveCountMax
est 3 (voir la page de manuel ssh_config).
Exemple :Si vous définissez ServerAliveInterval
à 60 et laissez ServerAliveCountMax
tel quel, cela signifie que le keepalive n'attendra que 3 * 60 = 180 seconds =
3 minutes avant de quitter.
Pour l'augmenter à par ex. 2 heures à essayer de maintenir la connexion, vous pouvez faire :
Par commande :
Par conséquent, vous devriez envisager de définir
ssh -o "ServerAliveInterval 60" -o "ServerAliveCountMax 120" <SERVER_ADDRESS>
Persistant :
Pour le rendre persistant, écrivez-le à /etc/ssh/ssh_config
(s'appliquera à l'ensemble du système) ou ~/.ssh/config
(s'appliquera uniquement à l'utilisateur):
ServerAliveInterval 60
ServerAliveCountMax 120
Remarque
Comme dislick l'a correctement souligné, cela pourrait ne pas être ce que vous voulez, selon votre situation :
- Si vous souhaitez terminer rapidement la session dès que le serveur ne répond plus, vous devez choisir une valeur faible pour
ServerAliveCountMax
. - Si vous êtes plus intéressé par le maintien d'une connexion déjà établie (par exemple, vous partez en train et avez une latence élevée), vous devez choisir une valeur plus élevée pour
ServerAliveCountMax
pour autoriserssh
pour continuer à essayer de rétablir la connexion.
Voir aussi :
- unix.stackexchange.com - Quel est le délai d'inactivité par défaut pour OpenSSH ?
J'utilise Mobaxterm et j'ai également rencontré ce problème. Mobaxterm est également livré avec une option permettant de maintenir le client en vie lorsque le client est inactif. Aller à Settings -> Configuration -> SSH
. Il y a une section intitulée SSH settings
, cochez l'option SSH keepalive
. Ensuite, le problème devrait disparaître.