Il existe un raccourci clavier "secret" pour forcer une sortie :~) Depuis la session gelée, tapez ces touches dans l'ordre : Enter~. Le tilde (uniquement après un saut de ligne) est reconnu comme une séquence d'échappement par le client ssh, et le point indique au client de mettre fin à son activité sans autre forme de procès.
Le comportement d'attente prolongée en cas de problèmes de communication n'est pas un bogue, la session SSH attend dans l'espoir que l'autre partie revienne. Si le réseau s'interrompt, parfois même plusieurs jours plus tard, vous pouvez récupérer une session SSH. Bien sûr, vous pouvez lui demander d'abandonner et de mourir en suivant la séquence ci-dessus. Il y a également plusieurs choses que vous pouvez faire, comme définir des délais d'attente dans votre client de sorte que s'il n'a pas de lien actif pendant un certain temps, il se ferme de lui-même, mais le comportement par défaut est de rester aussi connecté que possible !
Editar: Une autre application utile de cette clé d'interruption est d'attirer l'attention du client ssh local et de le mettre en arrière-plan pour revenir à votre Shell local pendant une minute - disons pour obtenir quelque chose de votre historique - puis de le mettre en arrière-plan pour continuer à travailler à distance. Enter~ Ctrl + Z pour envoyer le client ssh dans la file d'attente des tâches d'arrière-plan de votre Shell local, puis fg
comme d'habitude pour le récupérer.
Editar: Dans le cas de sessions SSH imbriquées, vous pouvez ajouter plusieurs caractères tilde pour ne sortir que d'une seule des sessions SSH de la chaîne, mais conserver les autres. Par exemple, si vous êtes imbriqué dans 3 niveaux, (c'est-à-dire que vous ssh de local->Machine1->Machine2->Machine3), Enter~. vous ramènera à votre session locale, Enter~~. vous laissera dans Machine1, et Enter~~~. vous laissera dans Machine2. Cela fonctionne également pour d'autres séquences d'échappement, comme le déplacement temporaire de la session ssh en arrière-plan. Ce qui précède fonctionne pour tout niveau d'imbrication, en ajoutant simplement d'autres tildes.
Enfin, vous pouvez utiliser Enter~? pour imprimer un menu d'aide des commandes d'échappement disponibles.
TL;DR - les commandes d'échappement prises en charge sont les suivantes Séquences d'échappement prises en charge :
~. - terminate connection (and any multiplexed sessions)
~B - send a BREAK to the remote system
~C - open a command line
~R - request rekey
~V/v - decrease/increase verbosity (LogLevel)
~^Z - suspend ssh
~# - list forwarded connections
~& - background ssh (when waiting for connections to terminate)
~? - this message
~~ - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)