Hay un atajo de teclado "secreto" para forzar una salida: ~) Desde la sesión congelada, presione estas teclas en orden: Enter~.el cliente ssh reconoce la tilde (solo después de una nueva línea) como una secuencia de escape, y el período indica cliente para terminar su negocio sin más preámbulos.
El comportamiento de suspensión prolongada en los problemas de comunicación no es un error, la sesión SSH se cuelga esperando que el otro lado regrese. Si la red se rompe, a veces, incluso días después, puede recuperar una sesión SSH. Por supuesto, puedes decirle específicamente que se rinda y muera con la secuencia anterior. También hay varias cosas que puede hacer, como establecer tiempos de espera para mantener vivo en su cliente, de modo que si no tiene un enlace activo durante un cierto período de tiempo, se apaga solo, pero el comportamiento predeterminado es permanecer como conectado como sea posible!
Editar: Otra aplicación útil de esta tecla de interrupción es llamar la atención del cliente ssh local y ponerlo en segundo plano para que vuelva a su shell local por un minuto —diga obtener algo de su historial— y luego póngalo a tierra para seguir trabajando de forma remota. Enter~ Ctrl+ Zpara enviar el cliente ssh a la cola de trabajos en segundo plano de su shell local, y luego, fg
como es normal, recuperarlo.
Editar: cuando se trata de sesiones SSH anidadas, puede agregar varios caracteres tilde para salir solo de una de las sesiones SSH en la cadena, pero conservar las demás. Por ejemplo, si está anidado en 3 niveles (es decir, ssh desde local-> Machine1-> Machine2-> Machine3), lo Enter~.llevará de regreso a su sesión local, Enter~~.lo dejará en Machine1 y Enter~~~.lo dejará en Machine2 . Esto también funciona para otras secuencias de escape, como mover la sesión ssh a segundo plano temporalmente. Lo anterior funciona para cualquier nivel de anidamiento, simplemente agregando más tilde.
Finalmente, puede usar Enter~?para imprimir un menú de ayuda de los comandos de escape disponibles.
TL; DR: los comandos de escape admitidos son secuencias de escape admitidas:
~. - 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.)