Cómo cerrar una conexión SSH colgada y otras secuencias de escape SSH
A veces se nos queda una conexión SSH colgada. Esto es típico tras volver de una hibernación o si estamos atravesando un cortafuegos o un NAT con un timeout bajo y la conexión SSH tiene poca actividad.
En esos casos la conexión SSH puede parecer colgada y tenemos que esperar a que la sesión se caiga por timeout SSH.
SSH se puede configurar con un tiempo keepalive corto para mantener el cortafuegos o el NAT contento y, también, para detectar la caída rápidamente tras la vuelta de la hibernación, pero en este artículo vamos a hacerlo de otra manera.
Si estamos en una sesión SSH, podemos pulsar la tecla de línea nueva (la tecla puede etiquetarse como enter, intro o return), luego la virguilla (es decir, ~) y finalmente el signo de interrogación cerrada (es decir, ?). Veremos algo de este estilo:
Supported escape sequences: ~. - 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.)
Aquí vemos algunas secuencias de escape interesantes que conviene conocer. Especialmente nos interesa la secuencia ~., que corta la conexión SSH. Obsérvese también que para enviar una virguilla (~) al servidor hay que pulsarla dos veces.
Recuerda que las secuencias de escape de SSH deben teclearse al principio de la línea. Si no funciona, asegúrate de pulsar la tecla enter primero.