Servidores Web

Como Evitar que a Sessão SSH no PuTTY Desconecte Rapidamente? Confira!

Aprenda como evitar que a sessão SSH no PuTTY desconecte o seu servidor, com configurações keep-alive, timeouts e dicas práticas. Guia completo com exemplos e soluções testadas.

Evitar que a Sessão SSH no PuTTY Desconecte Rapidamente

Se você já trabalhou com conexões SSH através do PuTTY, provavelmente já enfrentou o frustrante problema de sessões que desconectam automaticamente após alguns minutos de inatividade. Essa desconexão inesperada pode interromper trabalhos importantes, causar perda de dados não salvos e afetar significativamente a produtividade.

Neste guia completo, você aprenderá as principais causas das desconexões SSH e descobrirá métodos eficazes para manter suas sessões ativas por períodos prolongados, garantindo uma experiência de trabalho mais estável e produtiva.

Por Que a Sessão SSH Desconecta Automaticamente?

Por que, exatamente, sua sessão SSH está sendo desconectada de forma automática e inesperada? Uma das questões mais frustrantes para usuários que se conectam remotamente a servidores via SSH é a ocorrência de desconexões súbitas e não solicitadas.

Antes de continuarmos, uma questão crucial: por que o servidor desconecta sessões SSH? É por motivos de segurança. Imagine uma conexão SSH aberta em produção, sem supervisão. A desconexão automática mitiga esse risco. Há duas formas de configurar o timeout: no servidor (sistema operacional/SSH) ou no cliente SSH local. Ambas as opções são válidas, dependendo da sua necessidade.

Este comportamento indesejado pode interromper fluxos de trabalho, causar perda de dados não salvos e simplesmente ser irritante.

Há mais alguns motivos que provocam esse desligamento automático da sua sessão SSH:

1. Timeout do Servidor SSH

  • Servidores SSH possuem configurações de timeout padrão
  • Geralmente definido entre 5-15 minutos de inatividade
  • Medida de segurança para liberar recursos

2. Firewall e NAT

  • Equipamentos de rede descartam conexões inativas
  • Roteadores domésticos frequentemente têm timeouts curtos
  • Firewalls corporativos podem ter políticas restritivas

3. Configurações do Cliente

  • PuTTY não envia keep-alive por padrão
  • Ausência de atividade na conexão
  • Configurações inadequadas de timeout

4. Instabilidade de Rede

  • Perda temporária de conectividade
  • Latência alta ou intermitente
  • Problemas no provedor de internet

Dicas Essenciais para Evitar que a Sessão SSH no PuTTY Desconecte

1. Configurar Keep-Alive no PuTTY

O keep-alive desempenha um papel crucial na garantia de que a conexão permaneça ativa e funcional ao longo do tempo. Ele é essencial para evitar que a conexão seja interrompida prematuramente, mesmo que não haja uma troca constante de dados. A sua principal função é, portanto, a manutenção da conexão em um estado ativo, possibilitando a continuidade das operações e a disponibilidade dos recursos que dependem dessa conexão.

Passos para configurar:

  1. Abra o PuTTY.
  2. Vá em Connection no menu lateral.
  3. Localize a opção “Seconds between keepalives“.
  4. Defina um valor entre 30-60 segundos.
  5. Alguns especialistas recomendam marcar “Enable TCP keepalives”, mas em meus testes não houve necessidade.
Abra o PuTTY e vá em Connection no menu lateral

Vamos usar o exemplo com 60, (para sessenta segundos).

Alterando o tempo de atividade do SSH para não desconectar

Despois da alteração, volte para a sessão (session) que você quer habilitar, selecione-a e clique em Salvar.

Salvando alterações no PUTY

Agora já pode fazer o teste para ver se funciona. Basta selecionar o Servidor que você quer acessar, clicar em “Load” e conferir na lista Connection.

2. Ajustar Timeout de Inatividade dentro no terminal SSH

No lado do servidor (arquivo /etc/ssh/sshd_config), você pode adicionar os comandos para que a cada tempo determinado ele envie sinais de reconexão.

Por exemplo: nano /etc/ssh/sshd_config

Adicione os seguintes códigos

ClientAliveInterval 60
ClientAliveCountMax 3

ClientAliveCountMax 3 vai informar ao servidor quantas vezes no máximo ele vai enviar o alerta para permanecer conectado. Você pode aumentar ou diminuir a quantidade. Ou pode ignorar, omitindo esta linha de código.

Etapa pronta, mas ainda é possível evitar que a sessão SSH no PuTTY desconecte o seu servidor adicionando outras configurações no lado do clientes, ou ainda configurações avançadas dentro do seu terninal SSH com Puty ou acesso VNC, sempre com privilégios root.

3. Evitar que a sessão SSH no PuTTY desconecte o seu servidor No lado do cliente (arquivo ~/.ssh/config):

Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3

4. Usar Screen ou Tmux

Ferramentas de multiplexação de terminal mantêm sessões ativas:

Screen:

# Iniciar nova sessão
screen -S minha_sessao

# Desanexar (Ctrl+A, depois D)
# Reanexar
screen -r minha_sessao

Tmux:

# Iniciar nova sessão
tmux new-session -s minha_sessao

# Desanexar (Ctrl+B, depois D)
# Reanexar
tmux attach-session -t minha_sessao

Formas Avançadas de Manter a Conexão

1. Configuração Avançada do PuTTY

Salvando configurações personalizadas:

  1. Configure todos os parâmetros necessários
  2. Em “Saved Sessions”, digite um nome
  3. Clique em “Save”
  4. Use “Load” para carregar a configuração

Configurações recomendadas:

  • Connection → Data → Terminal-type string: xterm-256color
  • Connection → SSH → Protocol options → Don’t start a shell
  • Window → Colours → Use system colours (desmarcar)

2. Scripts de Monitoramento

Script Python para keep-alive:

import paramiko
import time

def ssh_keepalive(hostname, username, password):
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    try:
        client.connect(hostname, username=username, password=password)
        transport = client.get_transport()
        transport.set_keepalive(30)  # 30 segundos

        while True:
            time.sleep(60)
            transport.send_ignore()

    except Exception as e:
        print(f"Erro: {e}")
    finally:
        client.close()

3. Configuração do Servidor SSH

Otimizações no /etc/ssh/sshd_config:

# Keep-alive do servidor
ClientAliveInterval 120
ClientAliveCountMax 3

# Timeout de login
LoginGraceTime 60

# Máximo de conexões
MaxStartups 10:30:100

# Compressão (melhora performance)
Compression yes

Exemplos Práticos

Exemplo 1: Configuração Básica do PuTTY

Host: servidor.exemplo.com
Port: 22
Connection Type: SSH
Saved Sessions: "Servidor Produção"

Connection Settings:
- Seconds between keepalives: 45
- Enable TCP keepalives: ✓
- Disable Nagle's algorithm: ✓

Exemplo 2: Arquivo de Configuração SSH Cliente

# ~/.ssh/config
Host servidor-prod
    HostName 192.168.1.100
    User admin
    Port 22
    ServerAliveInterval 60
    ServerAliveCountMax 3
    TCPKeepAlive yes
    IdentityFile ~/.ssh/id_rsa

Exemplo 3: Script de Conexão Automática

#!/bin/bash
# auto_ssh.sh

HOST="servidor.exemplo.com"
USER="usuario"
RETRY_INTERVAL=10

while true; do
    echo "Conectando ao $HOST..."
    ssh -o ServerAliveInterval=60 \
        -o ServerAliveCountMax=3 \
        -o TCPKeepAlive=yes \
        $USER@$HOST

    echo "Conexão perdida. Reconectando em $RETRY_INTERVAL segundos..."
    sleep $RETRY_INTERVAL
done

Soluções por Cenário

Para Administradores de Sistema:

  • Configure políticas de timeout adequadas
  • Implemente monitoramento de conexões
  • Use ferramentas de automação (Ansible, Puppet)

Para Desenvolvedores:

  • Utilize IDEs com suporte SSH nativo
  • Configure ambientes de desenvolvimento remoto
  • Implemente scripts de reconexão automática

Para Usuários Domésticos:

  • Configure keep-alive no cliente
  • Use multiplexadores de terminal
  • Considere VPN para conexões mais estáveis

Conclusão

Manter sessões SSH ativas no PuTTY não precisa ser um desafio constante. Com as configurações adequadas de keep-alive, timeouts apropriados e o uso de ferramentas como screen ou tmux, você pode trabalhar com tranquilidade sem se preocupar com desconexões inesperadas.

As soluções apresentadas neste guia atendem desde usuários iniciantes até administradores experientes. Lembre-se de sempre testar as configurações em um ambiente controlado antes de aplicá-las em produção.

Implementar essas práticas não apenas melhora a estabilidade das conexões, mas também aumenta significativamente a produtividade e reduz a frustração causada por interrupções inesperadas.

Perguntas Frequentes (FAQ)

1. Qual é o valor ideal para keep-alive no PuTTY?

Recomenda-se entre 30-60 segundos. Valores muito baixos podem sobrecarregar a rede, enquanto valores altos podem não ser eficazes contra timeouts agressivos.

2. O keep-alive afeta a performance da rede?

O impacto é mínimo. Os pacotes keep-alive são pequenos e enviados apenas quando a conexão está inativa.

3. Por que minha conexão ainda desconecta mesmo com keep-alive configurado?

Pode ser devido a:

  • Configurações restritivas do firewall
  • Problemas de conectividade de rede
  • Configurações do servidor SSH que sobrescrevem as do cliente

4. É seguro usar keep-alive em redes públicas?

Sim, mas considere usar VPN para adicionar uma camada extra de segurança em redes não confiáveis.

5. Como verificar se o keep-alive está funcionando?

Use ferramentas como netstat ou ss no servidor para monitorar o tráfego da conexão, ou observe os logs do SSH.

6. Screen e Tmux funcionam com qualquer cliente SSH?

Sim, são ferramentas do lado do servidor e funcionam independentemente do cliente SSH utilizado.

7. Posso configurar diferentes keep-alive para diferentes servidores?

Sim, usando o arquivo ~/.ssh/config você pode definir configurações específicas por host.

8. O que fazer se não tenho acesso às configurações do servidor?

Foque nas configurações do cliente (PuTTY) e use ferramentas como screen/tmux para manter sessões ativas no servidor.



Editor iCloud

A edição do site icloud.com.br é feita pelo administrador do site. Criamos conteúdo para levar conhecimento aos nossos leitores.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Botão Voltar ao topo