terça-feira, 28 de maio de 2013

ssh: problemas com sessões ssh inativas [Linux]

A solução: Keep Alive!

Para que não ocorra mais estas quedas nas conexões, podemos usar o recurso de Keep Alive, que traduzindo para português significa "Manter Vivo". O Keep Alive é um conceito que existe em diversas aplicações e consiste em um pequeno pacote descartável e sem nenhuma importância, que é mandado para o servidor de tempos em tempos. Isso faz com que a conexão TCP continue aberta e não feche por ociosidade ou outra razão.

Para o nosso problema, podemos configurar os clientes SSH para mandar os pacotes de Keep Alive em intervalos de por exemplo, 30 segundos.

Como fazer no Linux / Unix

Em sistemas Linux e semelhantes, geralmente utilizamos o cliente de SSH chamado OpenSSH. O arquivo de configuração do cliente do SSH é:

  • /etc/ssh/ssh_config

Então edite-o e adicione a seguinte linha no final do arquivo:

1
ServerAliveInterval 30

Pronto. Das próximas vezes que você se conectar via comando ssh em servidores remotos, o OpenSSH irá mandar os pacotes de Keep Alive de 30 em 30 segundos, e assim sua conexão não irá cair por TCP Timeout.

Se você estiver com pressa e não quiser editar um arquivo de configuração, pode fazer isso na própria linha de comando quando for executar o ssh, adicionando a opção "-o TCPKeepAlive=yes", exemplo:

ssh -o TCPKeepAlive=yes servidor.remoto.com.br

Como fazer no Windows

No Windows, acho que 99,9% das pessoas que acessam servidores remotos via SSH utilizam o cliente PuTTY. Neste caso, para habilitar os pacotes de Keep Alive, basta preencher o campo mostrado na imagem abaixo:

putty keepalive 300x287 ssh: problemas com sessões ssh inativas?

Nenhum comentário:

Postar um comentário