Veja o que fazer quando suas conexões SSH no Linux param de responder e as teclas digitadas não funcionam.

Você pode estar digitando em uma sessão SSH remota e, de repente, nada acontece. O sistema parece não responder às teclas digitadas. O que você faz?

Veja por que isso acontece, como encerrar uma sessão SSH que não responde e por que você pode querer mudar para Mosh.

O que faz com que as sessões SSH congelem?

O principal motivo do congelamento das sessões SSH é a queda da conexão de rede. Os sinais de Wi-Fi podem cair ou você pode deixar o computador entrar no modo de suspensão. Isso é mais comum em laptops. Você pode fechar a tampa do laptop e esquecer que ainda está conectado por SSH.

O SSH foi originalmente projetado em uma época em que as pessoas usavam laptops rotineiramente. O SSH funciona melhor em redes com fio.

1. Terminar com uma sequência de escape

Se a sua sessão SSH congelar, tente usar uma sequência de escape. Uma sequência de escape permite enviar sinais para o cliente SSH em vez da máquina remota. As sequências de escape são precedidas por um caractere de escape. Por padrão no cliente OpenSSH, é o

til (~) personagem.

Para sair do cliente SSH, você pode pressionar a tecla til e depois a tecla período (.) chave.

Você também pode alterar o caractere de escape, se desejar. Você pode especificar um novo caractere de escape com o -e opção na linha de comando. Você também pode alterá-lo permanentemente definindo o EscapeChar opção em seu .ssh/config arquivo em seu diretório inicial na máquina local.

2. Usando o comando kill

Se o uso de uma sequência de escape não funcionar, você pode tentar encerrar o cliente SSH. Para encontrar o ID do processo (PID) da sua sessão, canalize o comando ps por meio do grep:

ps aux | grep ssh

O argumento "aux" para ps significa "listar todos os processos no sistema, não importa a quem ele pertença ou se tenha um terminal de controle ou não."

Se você tiver várias sessões, poderá escolher a congelada porque a listagem mostrará o nome de usuário e o endereço na máquina remota na qual as sessões SSH estão conectadas. Depois de encontrar o PID da sua sessão, você pode encerrá-la com o comando kill:

kill [PID]

Para melhores conexões SSH, use Mosh!

A melhor maneira de evitar sessões SSH congeladas irritantes é usar Mosh. Se a conexão cair, o Mosh permitirá que você permaneça conectado. Ele enviará todas as mensagens quando você se reconectar. Também funciona quando você coloca sua máquina em hibernação.

Você também pode usar um multiplexador de terminal como GNU Screen ou tmux para retomar sua sessão SSH após qualquer desconexão, mas Mosh e tmux são ainda mais poderosos quando usados ​​juntos.

Para instalar o Mosh no Debian e Ubuntu:

sudo apt install mosh

E no Arch Linux:

sudo pacman -S mosh

Na família de distros Red Hat:

sudo dnf install mosh

Agora você pode se livrar de sessões SSH travadas

Sessões SSH que não respondem podem ser frustrantes, mas você pode se livrar delas com uma sequência de escape ou o comando kill. Mosh é um substituto ainda melhor que manterá sua conexão ativa durante quedas de conexão e suspensão do sistema.