2 votes

Pourquoi est-ce que ça prend autant de temps pour que ssh décide qu'il y a eu une erreur ?

J'utilise ssh pour me connecter à mon serveur. Il m'arrive de le laisser connecté et de m'éloigner de l'ordinateur, auquel cas l'ordinateur passe en mode d'économie d'énergie (ou quel que soit son nom - l'écran devient noir).

Lorsque je reviens et que j'essaie de faire quoi que ce soit dans cette fenêtre de terminal, rien ne semble se produire. Après au moins 10 minutes, le message "write failed : broken pipe" apparaît.

Ma question est, quel est le problème de ce retard massif ? Pourquoi met-il autant de temps à décider qu'il ne peut plus se connecter au serveur ? Existe-t-il un moyen de réduire ce délai, à part fermer le terminal et recommencer à zéro ?

0voto

JD Schmidt Points 249

Vous pouvez déboguer ssh en tapant ssh -vvv ... Cela déboguera non seulement la connexion mais aussi les sessions. Cependant, cela peut devenir un peu ennuyeux lorsque le débogage est continuellement lancé. La quantité de 'v' détermine la quantité de débogage qui est active dans les sessions (plus il y a de 'v', plus il y a de niveaux de débogage). Je ne suis pas sûr que cela aidera à identifier le problème, mais cela pourrait aider à le localiser. Habituellement, il y a un temps de survie défini dans votre client ssh qui enverra des "pings" pour dire au serveur que vous êtes toujours connecté, c'est ici que cette variable est définie :

/etc/ssh/sshd_config 
ClientAliveInterval 30
ClientAliveCountMax 5 

Où ClientAliveInterval : Définit un intervalle de temps en secondes (30) après lequel, si aucune donnée n'a été reçue du client, sshd enverra un message via le canal crypté pour demander une réponse du client. La valeur par défaut est 0, indiquant que ces messages ne seront pas envoyés au client. Cette option s'applique uniquement à la version 2 du protocole. ClientAliveCountMax : Définit le nombre de messages de client vivant (5) qui peuvent être envoyés sans que sshd ne reçoive de messages en retour du client. Si ce seuil est atteint pendant l'envoi de messages de survie du client, sshd déconnectera le client, mettant fin à la session.

Si vous modifiez ces paramètres, assurez-vous de redémarrer sshd via cette commande :

/etc/init.d/ssh restart

J'espère que cela vous aidera !

0voto

DisgruntledGoat Points 3157

Je n'ai jamais trouvé de véritable réponse à cette question, bien qu'il soit intéressant de noter que sur Mac, le délai d'attente est beaucoup, beaucoup plus court (peut-être 30 secondes).

Cependant, j'ai découvert que vous pouvez taper ~. (tilde puis point) pour fermer la session immédiatement. Ainsi, si le SSH ne répond plus, je fais simplement ceci.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X