Esto es lo que debe hacer cuando sus conexiones SSH en Linux dejan de responder y las pulsaciones de teclas no funcionan.
Es posible que esté escribiendo una sesión SSH remota y, de repente, no sucede nada. El sistema no parece responder a sus pulsaciones de teclas. ¿A qué te dedicas?
A continuación le explicamos por qué sucede, cómo salir de una sesión SSH que no responde y por qué es posible que desee cambiar a Mosh.
¿Qué causa que las sesiones SSH se congelen?
La razón principal por la que las sesiones SSH se congelan es la caída de la conexión de red. Las señales de Wi-Fi pueden disminuir o es posible que dejes que tu computadora entre en modo de suspensión. Esto es más común con las computadoras portátiles. Es posible que cierres la tapa de la computadora portátil y olvides que todavía estás conectado a través de SSH.
SSH se diseñó originalmente en una era anterior a que la gente usara computadoras portátiles de manera rutinaria. SSH funciona mejor en redes cableadas.
1. Terminar con una secuencia de escape
Si su sesión SSH se congela, intente usar una secuencia de escape. Una secuencia de escape le permite enviar señales al cliente SSH en lugar de a la máquina remota. Las secuencias de escape están precedidas por un carácter de escape. De forma predeterminada en el cliente OpenSSH, es el tilde (~) personaje.
Para salir del cliente SSH, puede presionar la tecla tilde y luego la tecla período (.) llave.
También puedes cambiar el carácter de escape si lo deseas. Puede especificar un nuevo carácter de escape con el -mi opción en la línea de comando. También puedes cambiarlo permanentemente configurando el EscapeChar opción en tu .ssh/config archivo en su directorio personal en la máquina local.
2. Usando el comando matar
Si usar una secuencia de escape no funciona, puede intentar eliminar el cliente SSH. Para encontrar el ID de proceso (PID) de su sesión, canalice el comando ps a través de grep:
ps aux | grep ssh
El argumento "aux" de ps significa "enumerar todos los procesos del sistema, sin importar a quién pertenezca o si tiene un terminal de control O no."
Si tiene varias sesiones, puede elegir la congelada porque la lista mostrará el nombre de usuario y la dirección en la máquina remota en la que están iniciadas las sesiones SSH. Una vez que haya encontrado el PID de su sesión, puede finalizarla con el comando kill:
kill [PID]
Para mejores conexiones SSH, ¡use Mosh!
Una mejor manera de evitar las molestas sesiones SSH congeladas es utilizar mosh. Si la conexión se cae, Mosh te permitirá permanecer conectado. Enviará cualquier mensaje cuando se vuelva a conectar. También funciona cuando pones tu máquina en modo de suspensión.
También puede usar un multiplexor de terminal como GNU Screen o tmux para reanudar su sesión SSH después de cualquier desconexión, pero Mosh y tmux son aún más poderosos cuando se usan juntos.
Para instalar Mosh en Debian y Ubuntu:
sudo apt install mosh
Y en Arch Linux:
sudo pacman -S mosh
Sobre la familia de distribuciones Red Hat:
sudo dnf install mosh
Ahora puede deshacerse de las sesiones SSH atascadas
Las sesiones SSH que no responden pueden ser frustrantes, pero puedes deshacerte de ellas con una secuencia de escape o el comando Kill. Mosh es un reemplazo aún mejor que mantendrá viva su conexión durante las caídas de conexión y las suspensiones del sistema.