CONFIGURAR OU DESATIVAR O TIMEOUT EM UMA SESSÃO OCIOSA (IDLE) DE SSH

Tux

Você está conectado no servidor usando o Putty mas deixa a sessão ociosa por muito por causa de um processo demorado em execução. Uma hora e meia mais tarde, você retorna para saber se o processo foi concluído e descobre que aquele relatório que leva mais de uma hora para rodar, parou porque a sessão foi desconectada!

Você olha para a console e simplesmente vê uma mensagem parecida a esta:

Read from remote host SRVLINUX01.local: Connection reset by peer
Connection to SRVLINUX01.local closed.

Isso acontece porque o servidor está aguardando por um tempo uma resposta do usuário via console, mas como não a recebe nada, acaba mandando um sinal de desconexão. Neste momento, o sistema percebeu que há um estado de ociosidade na sessão do usuário (conhecido por muitos como tempo IDLE). Esta ociosidade poderia ter sido causada por um erro de conexão de rede e por questões de segurança aos aplicativos do sistema, ele opta por encerrar a sessão. Mas se você sabe que as conexões de rede são estáveis, e será necessário um maior tempo para executar algum processo demorado por algum dos usuário na rede, você tem duas opções:

  • Aumentar o tempo de espera do sistema antes que ele desconecte a sessão.
  • Desativar esse tempo de espera para que o sistema nunca desconecte a sessão.

E como você faz isso?

Independente de sua escolha, você deverá alterar um arquivo de configuração do SSH conhecido como “sshd_config”, que é onde ficam as configurações do lado servidor.

Para chegar a este arquivo, siga até o diretório por digitar o comando na console:

# cd /etc/ssh

Lembre-se: antes de editar o arquivo “sshd_config”, faça um Backup! Pode criar uma cópia:

# cp sshd_config sshd_backup

Agora que você se preveniu contra erros, certifique que o arquivo tenha permissões para ser alterado, digite:

# ls sshd_config –l

Resultará:

-rw-r--r-- 1  root root 2560 Dez 19 09:30 sshd_config

Esta linha mostra as permissões de usuário proprietário, grupo, e demais. Como o proprietário é o “root”, se você estiver logado como “root”, terá permissões de ler e gravar. Se as permissões estiverem diferentes, utilize o comando:

# chmod 644 sshd_config

Então agora você poderá salvar as alterações. Agora abra o arquivo utilizando o editor de textos do Linux “VI“:

# vi sshd_config

Neste arquivo, você deverá encontrar uma linha de parâmetro “ClientAliveInterval”. Se não encontrar, o sistema deve estar assumindo o padrão que é um tempo bem reduzido de sessão ociosa. Como vimos, você tem dois caminhos, vamos ver o primeiro que é:

  • Aumentar o tempo de espera do sistema antes que ele desconecte a sessão.

Primeiro tente localizar o parâmetro “ClientAliveInterval” e, se não o encontrar role até o final do arquivo. Então insira uma nova linha com esse parâmetro.

Você deverá indicar um valor para o parâmetro. Por exemplo, o valor no parâmetro abaixo define o tempo de espera para cinco minutos:

ClientAliveInterval 300

O valor parâmetro é definido em segundos. Assim, se você quiser definir para uma hora de espera, precisará indicar o número 3600. Suponhamos que quiséssemos apontar 8 horas:

ClientAliveInterval 28800

Você ainda pode até aumentar este tempo, por informar quantas vezes a sessão irá contar o tempo. Para isso utilize um segundo parâmetro denominado “ClientAliveCountMax”. A cada contagem de tempo da sessão ociosa, o servidor tenta se comunicar com cliente e envia uma espécie de mensagem conhecida como “Keep Alive”, da qual o cliente deverá responder que está vivo. Não se preocupe porque, quando digo cliente, me refiro ao terminal que você está usando! 🙂

Se esse parâmetro também não existir, você pode inserí-lo em uma linha logo abaixo do parâmetro anterior “ClientAliveInterval”. A linha abaixo, informa ao sistema que serão enviados duas mensagens “Keep Alive” ao cliente:

ClientAliveCountMax 2

Então se você definir que a sessão ociosa ficará ativa por uma hora e definir no parâmetro “ClientAliveCountMax” o valor dois, na verdade ele acabará aguardando duas horas, porque ao final da primeira contagem de tempo, ele enviará uma mensagem de “Keep Alive” e se não receber nenhuma resposta do cliente, recomeçará uma nova contagem de tempo. Quando o sistema enviar pela segunda vez a mensagem Sede “Keep Alive”, se não receber um resposta do cliente, então encerrará. Mas este segundo é opcional e o valor padrão é 0 (zero). Por conveniência seria ideal você adicioná-lo mesmo com o valor zero.

ClientAliveCountMax 0

Agora o segundo caso:

  • Desativar esse tempo de espera para que o sistema nunca desconecte a sessão.

Para isso, você deve definir o valor do parâmetro “ClientAliveInterval” para 0 (zero). Novamente, se você inciou a leitura a partir daqui e ao procurar no arquivo sshd_config, não encontrou o parâmetro  “ClientAliveInterval”, role até o final do arquivo. Então insira uma nova linha com esse parâmetro.

ClientAliveInterval 0

Após realizar as alterações e salvar o arquivo sshd_config,  você deverá reiniciar a sessão ssh, para aplicar as alterações. Poderá fazer isso por utilizar o comando, conforme a edição do seu sistema operacional:

Debian, Ubuntu:

# /etc/init.d/ssh restart

ou :

# service ssh restart

Red Hat ou Fedora:

# /etc/init.d/sshd restart

ou :

# service sshd restart

FreeBSD:

# /etc/rc.d/sshd restart

UNIX:

# kill -HUP 'cat /var/run/sshd.pid'

Atenção: a localização do “/var/run/sshd.pid” pode ser diferente no seu sistema Unix, e nesse caso você deverá localizar o caminho no diretório /var/run.

Agora você pode resolver o problema dos usuários na sua rede e eles ficarão felizes por saber que poderão rodar aquele processo de quatro horas e meia sem se preocupar com desconexões de sessão!

[]’s

1 comentário

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.