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 é:
Então edite-o e adicione a seguinte linha no final do arquivo:
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: