Se você gastar muito tempo na linha de comando você pode ter encontrado um problema irritante onde o tempo de sua sessão termina após um período relativamente curto de inatividade. Embora isto seja desejável do ponto de vista da segurança, pode causar problemas quando você está tentando executar uma longa operação.
O que acontece é que sua conexão com o servidor é reinicializada quando você está ocioso por um tempo, normalmente produzindo o erro: Resetar a conexão por par. Para contornar isso, você precisa definir uma opção Keep Alive no servidor.
Neste guia, você aprenderá como prevenir o timeout da conexão SSH e manter sua sessão SSH viva mesmo após alguma inatividade no Linux.
Increase SSH Connection Timeout
No servidor, vá para o arquivo de configuração /etc/ssh/sshd_config
$ sudo vi /etc/ssh/sshd_config
Scroll e localize os seguintes parâmetros:
#ClientAliveInterval #ClientAliveCountMax
Onde,
-
ClientAliveInterval
: Define um intervalo de tempo limite em segundos após o qual se nenhum dado tiver sido recebido do cliente, o sshd enviará uma mensagem através do canal criptografado para solicitar uma resposta do cliente. O padrão é 0, indicando que estas mensagens não serão enviadas para o cliente. Esta opção aplica-se apenas à versão de protocolo 2. -
ClientAliveCountMax
: Define o número de mensagens vivas do cliente que podem ser enviadas sem que o sshd receba qualquer mensagem de volta do cliente. Se este limite for atingido enquanto as mensagens do cliente alive estiverem sendo enviadas, o sshd desconectará o cliente, terminando a sessão.
O valor de timeout é dado pelo produto dos parâmetros acima i.e.
Timeout value = ClientAliveInterval * ClientAliveCountMax
Por exemplo, digamos que você tenha definido seus parâmetros como mostrado:
ClientAliveInterval 1200ClientAliveCountMax 3
O valor de Timeout será de 1200 segundos * 3 = 3600 segundos. Isto é equivalente a 1 hora, o que implica que sua sessão ssh permanecerá viva por um tempo ocioso de 1 hora sem cair.
Alternativamente, você pode obter o mesmo resultado especificando apenas o parâmetro ClientAliveInterval.
ClientAliveInterval 3600
Até feito, recarregue o daemon OpenSSH para que as alterações entrem em vigor.
$ sudo systemctl reload sshd