Blog - Luiz Gustavo Web

Neste espaço me dedico a escrever artigos sobre GNU/Linux e desenvolvimento web.
Sinta-se à vontade.

Como manter conexão SSH viva

11 de Agosto de 2015

Após certo período de tempo sem atividade do usuário, Conexões SSH são normalmente desconectadas. O tempo que uma conexão se mantém de pé, mesmo sem atividade, depende da configuração do servidor.

Ao se desconectar por inatividade, uma mensagem como esta a seguir aparece no terminal:

Read from remote host dominio.com: Connection reset by peer
Connection to dominio.com closed

Isto é um recurso bastante plausível. E o intuito deste artigo não é desativar esta característica no lado do servidor. Alguns servidores, por medidas de segurança, tem seu tempo de vida em inatividade realmente pequeno.

Então, o que fazer? Uma soluçao é enviar um pacote ao servidor a cada intervalo de segundos, mesmo que realmente não estejamos fazendo alguma atividade na conexão.

Isto pode ser feito incluindo uma opção chamada ServerAliveInterval em seu arquivo de configuração SSH. Assim o cliente SSH irá enviar um pacote nulo em qualquer conexão inicializada apenas para manter a conexão viva.

O arquivo de configuração SSH pessoal se encontra em ~/.ssh/config(crie se nao existe). Inclua as seguintes linhas:

Host dominio.com
    ServerAliveInterval 100

O parâmetro de ServerAliveInterval é o intervalo de segundos que o cliente enviará o pacote.

Deste modo, a cada 100 segundos, um pacote nulo é enviado ao servidor de dominio.com, fazendo com que a conexão fique de pé.

Caso queira que essa configuração seja útil para todos os servidores, você pode fazer da seguinte maneira:

Host *
    ServerAliveInterval 100

© 2006 - 2017