Solucionar erro 'Connection timed out' no SSH: diagnóstico e correção

Por Equipe Técnica AviraHost · 7 min de leitura · Atualizado em · ssh, connection-timeout, firewall, linux, avirahost · 0

Solucionar erro 'Connection timed out' no SSH ocorre quando há problemas de conectividade, firewall bloqueando a porta 22 ou configuração incorreta do serviço SSH. A solução envolve verificar o status do serviço, configurar firewall e testar conectividade. Veja abaixo como diagnosticar e corrigir este problema comum.

Pré-requisitos

  • Acesso físico ou console ao servidor (IPMI, KVM ou painel de controle)
  • Conhecimento básico de comandos Linux
  • Permissões de root ou sudo no servidor
  • Cliente SSH instalado na máquina local (PuTTY, OpenSSH ou terminal)

Verificando o status do serviço SSH

O primeiro passo para solucionar erro 'Connection timed out' no SSH é verificar se o serviço está executando corretamente no servidor. O daemon SSH pode estar parado ou com falha na inicialização.

Acesse o servidor via console e execute o comando para verificar o status:

systemctl status ssh

Em sistemas CentOS/RHEL, o serviço pode ter nome diferente:

systemctl status sshd

Output esperado quando o serviço está ativo:

● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2024-01-15 10:30:45 UTC; 2h 15min ago

Se o serviço estiver inativo, inicie-o com:

systemctl start ssh
systemctl enable ssh

Verifique também se o SSH está escutando na porta correta:

netstat -tlnp | grep :22

Output esperado:

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      1234/sshd

Configurando firewall para permitir SSH

Firewalls mal configurados são a causa mais comum do erro de timeout SSH. O UFW (Uncomplicated Firewall) e iptables podem estar bloqueando conexões na porta 22.

Para sistemas com UFW, verifique o status atual:

ufw status

Se o SSH não estiver permitido, adicione a regra:

ufw allow ssh
ufw allow 22/tcp

Para sistemas usando iptables diretamente, verifique as regras atuais:

iptables -L INPUT -n

Adicione regra para permitir SSH se necessário:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables-save > /etc/iptables/rules.v4

Atenção: Sempre teste a conectividade SSH antes de desconectar do console, pois regras incorretas podem bloquear completamente o acesso remoto.

Testando conectividade de rede

Problemas de conectividade SSH podem estar relacionados à rede, roteamento ou configuração de porta. É essencial testar a conectividade antes de assumir que o problema está no servidor.

Do cliente, teste se a porta SSH está acessível:

telnet IP_DO_SERVIDOR 22

Output esperado se a conexão for bem-sucedida:

Trying 192.168.1.100...
Connected to 192.168.1.100.
Escape character is '^]'.
SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.4

Use nmap para verificar se a porta está aberta:

nmap -p 22 IP_DO_SERVIDOR

Teste também com timeout personalizado no SSH:

ssh -o ConnectTimeout=30 usuario@IP_DO_SERVIDOR

Se você alterou a porta SSH padrão, verifique a configuração em:

grep "^Port" /etc/ssh/sshd_config

Verificando configuração do SSH

Configurações incorretas no arquivo sshd_config podem causar falhas na inicialização do serviço SSH ou comportamentos inesperados. É importante validar as principais diretivas de configuração.

Examine o arquivo de configuração principal:

cat /etc/ssh/sshd_config | grep -E "^(Port|ListenAddress|PermitRootLogin|PasswordAuthentication)"

Teste a configuração antes de reiniciar o serviço:

sshd -t

Se não houver erros, o comando não retorna output. Em caso de erro, você verá mensagens como:

/etc/ssh/sshd_config line 15: Bad configuration option: InvalidOption

Verifique se o SSH está configurado para aceitar conexões de todos os IPs:

grep "^ListenAddress" /etc/ssh/sshd_config

Se não houver saída, o SSH escuta em todos os endereços por padrão. Após alterações, reinicie o serviço:

systemctl restart ssh

Problemas comuns e como resolver

Sintoma: SSH conecta mas desconecta imediatamente

Causa: Configuração de autenticação restritiva ou problemas com chaves SSH.
Solução: Verifique os logs em /var/log/auth.log e ajuste as configurações de PermitRootLogin e PasswordAuthentication conforme necessário.

Sintoma: Timeout apenas de IPs específicos

Causa: Fail2ban ou regras de firewall bloqueando IPs após tentativas de login falhadas.
Solução: Verifique o status do fail2ban com fail2ban-client status sshd e desbloqueie o IP com fail2ban-client set sshd unbanip IP_CLIENTE.

Sintoma: Erro "No route to host"

Causa: Problemas de roteamento de rede ou firewall de hardware bloqueando conexões.
Solução: Verifique a conectividade básica com ping e entre em contato com o provedor de rede se necessário.

Sintoma: SSH funciona localmente mas não remotamente

Causa: SSH configurado para escutar apenas em localhost (127.0.0.1).
Solução: Remova ou comente a linha ListenAddress 127.0.0.1 no arquivo /etc/ssh/sshd_config e reinicie o serviço.

Perguntas frequentes sobre solucionar erro SSH

O que causa o erro 'Connection timed out' no SSH?

O erro geralmente é causado por firewall bloqueando a porta 22, configuração incorreta do serviço SSH, ou problemas de conectividade de rede. Também pode ocorrer se o servidor estiver sobrecarregado ou com a porta SSH alterada.

Como verificar se o SSH está rodando no servidor?

Execute 'systemctl status ssh' ou 'systemctl status sshd' para verificar o status do serviço. Se estiver inativo, inicie com 'systemctl start ssh'. Também verifique se está escutando na porta correta com 'netstat -tlnp | grep :22'.

Qual porta o SSH usa por padrão?

O SSH usa a porta 22 por padrão. No entanto, muitos administradores alteram para uma porta personalizada por segurança. Verifique a configuração em '/etc/ssh/sshd_config' na linha 'Port'.

Como testar conectividade SSH de outro servidor?

Use 'telnet IP_SERVIDOR 22' para testar se a porta está acessível. Se conectar, verá uma mensagem do SSH. Também pode usar 'nmap -p 22 IP_SERVIDOR' para verificar se a porta está aberta.

O que fazer se o firewall estiver bloqueando SSH?

Configure o firewall para permitir SSH. No UFW use 'ufw allow ssh' ou 'ufw allow 22'. No iptables adicione a regra 'iptables -A INPUT -p tcp --dport 22 -j ACCEPT'. Sempre salve as regras após alterações.

Conclusão

  • Sempre verifique o status do serviço SSH e configurações de firewall antes de investigar problemas de rede
  • Mantenha acesso ao console do servidor para evitar bloqueios durante configurações de firewall
  • Documente alterações na porta SSH e configurações de segurança para facilitar troubleshooting futuro

Leia também

Precisa de ajuda com configuração de SSH?

Nossa equipe técnica especializada pode auxiliar na configuração segura de SSH e resolução de problemas de conectividade em seu servidor. Oferecemos suporte completo para VPS Linux com monitoramento 24/7.

Conheça nossos planos de VPS Linux


Esta resposta foi útil?