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.

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:
- Abra o PuTTY.
- Vá em Connection no menu lateral.
- Localize a opção “Seconds between keepalives“.
- Defina um valor entre 30-60 segundos.
- Alguns especialistas recomendam marcar “Enable TCP keepalives”, mas em meus testes não houve necessidade.

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

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

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:
- Configure todos os parâmetros necessários
- Em “Saved Sessions”, digite um nome
- Clique em “Save”
- 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.