J'ai une connexion SSH à une machine qui est déconnectée par cette machine après 30 minutes d'inactivité de l'utilisateur. Cependant, si je commence quelque chose comme top
, la connexion reste active. Puisqu'il s'agit d'un ordinateur client, je ne peux pas reconfigurer le serveur SSH de cet ordinateur. Je cherche donc un moyen de détecter automatiquement l’oisiveté et de commencer quelque chose comme ça top
. Une sorte de "screensaver" pour Bash.
Je sais que je peux le faire avec screen
, mais malheureusement, ce screen
n'est pas installé, et je ne peux pas installer de logiciel. J'ai donc besoin d'utiliser ce que Bash propose.
Pour être clair: je cherche une solution que je commence une fois après la connexion, puis je veux utiliser ce terminal, partir, revenir deux heures plus tard et continuer à travailler, sans rien taper avant de partir. De plus, je ne cherche pas à créer des tunnels (pour cela, je recommande l'excellent outil sshuttle ).
Des idées?
Réponses:
Le problème est qu'il y a quelque chose (généralement un pare-feu ou un équilibreur de charge), qui supprime des sessions inactives. Si vous configurez la conservation de session, celle-ci empêchera les périphériques réseau de considérer la session comme inactive.
Correctif OpenSSH sous Linux / Unix / Cygwin :
Le correctif le plus simple consiste à activer la conservation du client ssh; cet exemple enverra un keepalive ssh toutes les 60 secondes:
Si vous souhaitez l'activer sur toutes vos sessions, mettez-le dans votre
/etc/ssh/ssh_config
ou~/.ssh/config
:Pour plus d'informations, voir la
ssh_config
page de manuelMastic Fix :
Enregistrez ceci dans vos "Paramètres par défaut" de PuTTY ...
la source
En plus de la réponse de Mike Pennigton , je voudrais également vous en informer
ServerAliveCountMax
.ServerAliveInterval
va envoyer un keepalive toutes les x secondes (la valeur par défaut est 0 , ce qui désactive cette fonctionnalité si elle n'est pas définie sur autre chose).ServerAliveCountMax
fois si aucune réponse n'est reçue. La valeur par défautServerAliveCountMax
est 3 (voir la page de manuel ssh_config ).Exemple: Si vous réglez
ServerAliveInterval
sur 60 et que vous laissezServerAliveCountMax
tel quel, cela signifie que le keepalive n'attendra que3 * 60 = 180 seconds =
3 minutes avant de quitter.Pour augmenter ceci à 2 heures d’essai pour maintenir la connexion en vie, vous pouvez faire:
Par commande:
Par conséquent, vous devriez envisager de définir
Persistant:
Pour le rendre persistant, écrivez-le dans
/etc/ssh/ssh_config
(s'appliquera à l'ensemble du système) ou~/.ssh/config
(s'appliquera à l'utilisateur uniquement):Remarque
Comme dislick correctement souligné , cela pourrait ne pas être ce que vous voulez, selon votre situation:
ServerAliveCountMax
.ServerAliveCountMax
permettressh
de continuer à essayer de rétablir la connexion.Voir également:
la source
ServerAliveCountMax
spécifie la quantité de messages actifs du serveur qui peuvent être envoyés sans recevoir aucun message du serveur. Si vous souhaitezssh
quitter après le gel (pour pouvoir le redémarrer), vous devez définirServerAliveCountMax
un nombre faible . Voir la page de manuel OP liée.J'utilise Mobaxterm et j'ai également rencontré ce problème. Mobaxterm est également livré avec une option permettant de garder le client actif lorsque celui-ci est inactif. Allez à
Settings -> Configuration -> SSH
. Il y a la section intituléeSSH settings
, cochez l'optionSSH keepalive
. Ensuite, le problème devrait disparaître.la source