
Eu tenho um servidor CentOS que acesso via SSH do meu laptop Windows, manualmente com Putty ou programaticamente usando o módulo Python Fabric.
Às vezes, após um período de inatividade, a conexão é encerrada.
Minha principal questão é quando/por quê? Onde estão as configurações que determinam quando uma conexão SSH deve ser fechada? Quais são os valores padrão se nenhum for definido? Eu só gostaria de entender a lógica que envolve o fechamento da minha conexão... às vezes parece permitir que uma conexão permaneça aberta por mais de 12 horas de inatividade, enquanto outras vezes parece fechar a conexão após apenas cerca de 30 minutos de inatividade.
Uma questão secundária é se há alguma maneira de fazer com que o Putty permaneça aberto. No momento, Putty apenas me diz que a conexão foi fechada e me faz fechar a janela. Existe alguma maneira de fazer com que o Putty simplesmente reinicie a conexão e não exija que eu feche as janelas e faça login novamente manualmente?
Responder1
Você provavelmente configurou ClientAliveCountMax 0
alguma ClientAliveInterval
opção sshd_config
(ou foi usado algum valor padrão).
Definir esses valores para algo diferente de zero deve permitir que o servidor envie mensagens de manutenção de atividade que verificarão se o cliente ainda está respondendo.
Deve haver uma opção semelhante no cliente (em openssh chamado) ServerAliveCountMax
e ServerAliveInterval
).
Este comportamento também pode ser resultado do uso da opção cliente TCPKeepAlive
e a mesma no servidor, mas está habilitada por padrão.