Servidor reinicializado, mas a conexão SSH antiga / obsoleta do cliente ainda está ativa

0

Estou trabalhando em uma pequena solução de chamada SSH para uma de minhas caixas, e estou com um pequeno problema que mal sei o que procurar até descobrir o que está acontecendo.

Basicamente, o cliente se conecta por SSH e verifica a cada 60 segundos se a conexão ainda está ativa, usando netstat . No entanto, se o servidor for reinicializado e eu verificar o netstat, a conexão ainda será mostrada lá. Então, eu estou basicamente querendo ter certeza de que o cliente pode manter uma conexão SSH ativa (mesmo se não estiver sendo usada) por um longo tempo, mas se a conexão realmente terminar do servidor, eu quero que o cliente seja capaz de soltar a conexão.

Quais opções do cliente, se não do servidor, devo estar olhando para garantir que as conexões SSH antigas / obsoletas sejam realmente descartadas, garantindo que eu possa ter uma conexão SSH persistente para acesso futuro?

Eu pensei que poderia estar configurando o ClientAliveInterval e o ClientAliveCountMax, mas não tenho certeza se preciso definir isso no cliente, ou no servidor, e como o cliente saberia que está desconectado se for definido no servidor.

    
por user3447014 07.11.2017 / 04:22

1 resposta

2

Você pode executar o comando ssh com as opções -o ServerAliveInterval=30 -o ServerAliveCountMax=3 e isso fechará o cliente se o servidor não responder a 3 pings dados a cada 30 segundos. Talvez você também queira conferir o comando autossh que tenta garantir um a conexão é sempre mantida aberta.

    
por 07.11.2017 / 09:17