Il existe un raccourci clavier "secret" pour forcer une sortie: ~) Dans la session gelée, appuyez sur les touches suivantes: Enter~.Le tilde (uniquement après une nouvelle ligne) est reconnu comme une séquence d'échappement par le client ssh, et le point indique au client de mettre fin à ses activités sans plus tarder.
Le comportement à long blocage sur les problèmes de communication n’est pas un bug, la session SSH traîne en espérant que l’autre côté reviendra. Si le réseau tombe en panne, vous pouvez parfois récupérer une session SSH parfois plusieurs jours plus tard. Bien sûr, vous pouvez spécifiquement lui dire d'abandonner et de mourir avec la séquence ci-dessus. Vous pouvez également effectuer diverses opérations, telles que la définition de délais de maintien de la vie dans votre client, de sorte que, s'il n'a pas de lien actif pendant un certain temps, il s'éteint tout seul, mais le comportement par défaut est le suivant: connecté que possible!
Edit: une autre application utile de cette clé d’interruption consiste à attirer l’attention du client ssh local et à l’arrière-plan pour revenir à votre shell local pendant une minute, afin d’obtenir un élément de votre historique, puis de le relier à un travail à distance. Enter~ Ctrl+ Zpour envoyer le client ssh à la file d'attente des travaux en arrière-plan de votre shell local, puis, fg
comme d'habitude, pour le récupérer.
Edit: lorsqu’il s’agit de sessions SSH imbriquées, vous pouvez ajouter plusieurs caractères tilde pour ne sortir que d’une des sessions SSH de la chaîne, tout en conservant les autres. Par exemple, si vous êtes imbriqué dans 3 niveaux (c.-à-d. Que ssh de local-> Machine1-> Machine2-> Machine3), Enter~.vous retournerez à votre session locale, Enter~~.vous laissera dans Machine1 et Enter~~~.vous laissera dans Machine2. . Cela fonctionne également pour d'autres séquences d'échappement, telles que le déplacement temporaire de la session ssh en arrière-plan. Ce qui précède fonctionne pour n'importe quel niveau d'imbrication, en ajoutant simplement plus de tilde.
Enfin, vous pouvez utiliser Enter~?pour imprimer un menu d'aide contenant les commandes d'échappement disponibles.
TL; DR - les commandes d'échappement prises en charge sont les 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.)