Je sors souvent dans ma boîte à la maison après l’école, mais généralement lorsque je change de classe et que mon ordinateur est suspendu, le tuyau est cassé. Cependant, ssh se bloque simplement - Ctrl+ c, Ctrl+ zet Ctrl+ dn'ont aucun effet.
C'est ennuyeux de devoir redémarrer mon terminal, et encore plus gênant de devoir fermer et recréer une nouvelle fenêtre.
Ma question est donc la suivante: existe-t-il un moyen simple de faire en sorte que ssh meure correctement (c.-à-d. Lorsque le tuyau échoue "normalement", il se termine par un message concernant un tuyau cassé)? Ou dois-je comprendre ce qu'est le PID et le tuer manuellement?
screen -x
: PRéponses:
Les clés normales sont transférées au cours de la
ssh
session, aucune d'entre elles ne fonctionnera. Utilisez plutôt les séquences d'échappement. Pour tuer la session en cours frappé par la suite Enter ↵, ~, ..Plus de ces séquences d'échappement peuvent être listés avec Enter ↵, ~, ?:
Vous pouvez fermer la liste des séquences d'échappement en appuyant sur enter.
Notez que, parce que frapper ~~provoque l'
ssh
envoi au~
lieu de l'intercepter, vous pouvez adresser Nssh
connexions imbriquées en frappant ~ N fois. (Ceci s'applique uniquement aux ~s qui suivent directement un enter.) C'est-à-dire qu'une session est enter~~~~~.terminéessh
5 couches profondes et que les 4 autres restent intactes.la source
~
est une touche morte , la séquence de touches estEnter
~
Space
.
.EscapeChar ~
en commentaire de la ligne/etc/ssh/ssh_config
(ou~/.ssh/ssh_config
si vous préférez).Enter
~
~
.
Puisque~
~
envoie un littéral~
via votre session SSH, la deuxième session SSH le recevra sous la forme d'un tilde unique et interprétera le.
comme faisant partie de l'échappement. Pour envoyer à la 5ème session SSH imbriquée, utilisez simplement 5 tildes dans votre séquence d'échappement.Vous voudrez peut-être également configurer des connexions persistantes au niveau de l’application pour SSH afin de l’ empêcher de geler lors de problèmes de connexion. Mon
~/.ssh/config
contient ceci:Cela permet au client ssh d'envoyer des alarmes au niveau de l'application toutes les 15 secondes. Chaque fois que trois d'entre eux échouent consécutivement (la valeur par défaut de
ServerAliveCountMax
), le client considère que la connexion est bloquée et la ferme.Opposé à l'autre option
TCPKeepAlive
, ceci est vérifié dans le canal crypté et n'est pas spoofable.Il est à noter que ces entretiens aident également, euh, à maintenir en vie les connexions qui ne fonctionnent plus, c'est-à-dire à vous empêcher d'avoir des sessions à moitié fermées suspendues pendant des heures sans aucune modification .
Je vous recommande fortement d'activer cette fonctionnalité si vous rencontrez ce problème régulièrement, mais vous devez également connaître le léger risque de sécurité que cela peut imposer. Une attaque en texte connu peut devenir plus facile si l’attaquant connaît l’intervalle et le contenu d’une connexion inactive. Cela pourrait être la raison pour laquelle il n'est pas activé par défaut.
la source
%)
ServerAliveInterval
sur 1 afin qu'une connexion perdue soit immédiatement détectée?Host
ligne. En outre, "les chiffrements modernes tels que Advanced Encryption Standard ne sont actuellement pas sensibles aux attaques par du texte clair connu". (d'après le lien que vous avez ajouté) ... ...Comme indiqué dans la réponse de geekosaur, la séquence d'échappement
~.
mettra fin à la connexion.La liste complète des séquences d'échappement et de ce qu'elles font peut être affichée en tapant
~?
:la source