Os tempos limite de conexão são causados com mais frequência pelo filtro de pacotes ou pelo dispositivo NAT que excede a conexão TCP devido à inatividade. Não existe uma regra de ouro a respeito das configurações do ssh. Muito depende dos seus sistemas e conexões. Geralmente você deve definir o valor de intervalo de keep-alive para menos do que normalmente leva para a sua conexão para o tempo limite (ser expulso da tabela de conexões em seu sistema).
Você pode configurá-lo no servidor como ClientAliveInterval
ou no cliente como ServerAliveInterval
. O valor é o número de segundos. Se você configurá-lo para um valor muito alto, ssh poderá não conseguir enviar a mensagem antes que a conexão seja interrompida.
Você também deve aumentar o número máximo de novas tentativas de manutenção no servidor ( ClientAliveCountMax
) ou cliente ( ServerAliveCountMax
). O valor padrão é 3.
Esta contagem significa quantas vezes o servidor / cliente tentará obter confirmação de manutenção do outro lado antes de desconectar. Digamos que você defina ClientAliveInterval
para 60 segundos e ClientAliveCountMax
para 10. A conexão será descartada após 10 tentativas * 60 segundos se uma das partes não responder a 10 consultas consecutivas de keep-alive. Você pode tentar aumentar este parâmetro para um nível muito mais alto, como 100 ou até 9999 (?).
Você também pode considerar desativar os pacotes keep-alive do TCP no cliente e no servidor.
TCPKeepAlive no
Isso significa que as conexões não morrerão se a rota cair temporariamente. Mas por outro lado as conexões podem às vezes travar (especialmente se você definir AliveCountMax
para valor alto) se houver problema de comunicação, porque o problema não será detectado pelo ssh no nível TCP.
Veja também: