délai d'inactivité de la session ssh

9

La machine Solaris sur laquelle nous effectuons la majeure partie de notre développement a la fâcheuse habitude de temporiser les sessions SSH. Peu importe que le client soit mon bureau Ubuntu, mon bureau Solaris ou mon bureau Windows (mastic); le facteur commun est la grosse machine Solaris.

Puis-je faire quelque chose pour empêcher que cela se produise? C'est ennuyeux lorsque vous prenez une pause déjeuner et que les sessions terminales que vous avez ouvertes et délicatement configurées sont toutes gelées, vous devez donc toutes les tuer et rétablir tout votre contexte.

Andrew
la source

Réponses:

8

Oui. Configurez SSH pour envoyer des paquets keepalive .

Sophie Alpert
la source
Nous avons déjà "KeepAlive Yes" dans / etc / ssh / sshd_config. Il n'avait cependant pas de valeur ClientAliveInterval; donc je l'ai ajouté et nous verrons comment cela se passe.
Andrew
1
Il convient également de noter que vous pouvez également le faire dans l'autre sens. Si vous ne pouvez pas modifier la configuration du serveur, vous pouvez demander au client ssh d'envoyer les paquets keep alive à l'aide de ServerAliveInterval.
SpoonMeiser
L'emplacement de cet article a changé. Voici l'actuel: forumone.com/blogs/post/quick-tip-ssh-keepalive
John Bachir
2

J'ai trouvé que le comportement keepalive ne fonctionnait pas tout à fait. J'ai essayé d'ajouter ServerAliveInterval au script ~ / .ssh / config mais cela ne fonctionne pas bien avec git.

J'ai fini par ajouter un horodatage à ma barre d'état «écran». C'est une activité suffisante pour maintenir la connexion.

Andrew
la source
Si vous voulez cette fonctionnalité en dehors de l'écran (1), consultez Spinner
Drew Stephens
1

Vous pouvez également configurer Putty pour envoyer des paquets Keep Alive.

Dans Paramètres, Connexion, Secondes entre les Keepalives.

justinhj
la source
1

Tout d'abord, vous devez déterminer si c'est votre shell qui vous déconnecte ou ssh. Pour tester, ssh dans votre machine distante et vi ou moins un fichier.

Si longtemps plus tard, vous pouvez toujours vous déplacer moins / vi, alors ssh va bien. Dans ce cas, déterminez le shell que vous utilisez et désactivez le délai d'expiration. C'est probablement le shell qui vous temporise et non SSH. Cependant, certains pare-feu fermeront les sessions inactives si des messages persistants ne sont pas envoyés.

L'administrateur Solaris peut vous empêcher de désactiver le délai d'expiration dans votre shell, en définissant le paramètre en lecture seule. C'est peu probable, mais possible. Vous pouvez généralement contourner ce problème en utilisant un autre shell.

brianegge
la source
1

Si vous avez de la difficulté à reconfigurer votre shell, vous pouvez utiliser l'écran GNU. Si votre session SSH expire, connectez-vous à nouveau et reconnectez-vous et votre shell sera comme il était.

staticsan
la source
0

Si vous exécutez tcsh sur la machine Solaris, la variable de sortie automatique peut être définie. Si vous définissez cela sur 0 (définissez la déconnexion automatique = 0) ou que vous le désactivez (désactivez la déconnexion automatique), cela vous arrêtera de vous déconnecter.

Jimmy Hedman
la source
0

Cela peut être un hareng rouge, mais essayez

unset TMOUT

à l'invite de votre shell. Cela a certainement fonctionné pour moi dans le passé, mais je ne me souviens pas si c'est limité à certaines architectures (ou shells).

dr-jan
la source
0

Tapez votre profil shell

export TMOUT = 0

export TIMEOUT = 0

setatakahashi
la source
0

Vous pourriez exécuter topdans un autre terminal? Cela devrait générer du trafic régulier?

Rory
la source
0

Spinner semble être la solution parfaite à votre problème. Il envoie périodiquement des personnages dans votre session pour l'empêcher de se terminer.

Drew Stephens
la source
-1

J'ai toujours eu du succès avec 'ClientAliveInterval 300' sur les serveurs linux / bsd.

afa
la source
-1

Vérifiez votre sshdconfiguration pour des lignes comme celles-ci dans /etc/ssh/sshd_config:

ClientAliveInterval 600
ClientAliveCountMax 0
Franc
la source