10 min de leitura · Guia técnico
Problemas de conectividade SSH em VPS Linux Ubuntu 22.04 ocorrem principalmente por serviço SSH parado, firewall bloqueando a porta 22, configuração incorreta de chaves ou IP bloqueado pelo fail2ban. A solução mais comum é verificar se o serviço está rodando e liberar a porta no firewall. Este guia apresenta diagnóstico completo e soluções verificadas para restaurar o acesso SSH em poucos minutos.
Pré-requisitos
- Acesso ao painel de controle do VPS ou console de emergência
- Ubuntu 22.04 LTS instalado no servidor
- Credenciais de root ou usuário com privilégios sudo
- Cliente SSH instalado (PuTTY, Terminal ou similar)
- Conhecimento básico de linha de comando Linux
Diagnóstico inicial de conectividade SSH
Antes de aplicar correções, é fundamental identificar a causa raiz do problema de conectividade SSH. O primeiro passo é verificar se o serviço SSH está executando corretamente no servidor Ubuntu 22.04.
Acesse o console de emergência do seu VPS através do painel de controle e execute os comandos de diagnóstico:
sudo systemctl status ssh
Output esperado para serviço funcionando:
● 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 imediatamente:
sudo systemctl start ssh
sudo systemctl enable ssh
Verifique também se a porta SSH está sendo utilizada corretamente:
sudo netstat -tlnp | grep :22
Output esperado:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd: /usr/sbi
tcp6 0 0 :::22 :::* LISTEN 1234/sshd: /usr/sbi
Configuração do firewall para acesso SSH
Problemas de firewall são uma das principais causas de falha na conectividade SSH em servidores Ubuntu 22.04. O UFW (Uncomplicated Firewall) pode estar bloqueando conexões na porta 22 por padrão.
Primeiro, verifique o status atual do firewall:
sudo ufw status verbose
Se o UFW estiver ativo mas não permitir SSH, adicione a regra necessária:
sudo ufw allow ssh
sudo ufw allow 22/tcp
Para configurações mais específicas, permita SSH apenas de IPs confiáveis:
sudo ufw allow from SEU_IP_AQUI to any port 22
Recarregue as regras do firewall:
sudo ufw reload
Confirme que a regra foi aplicada:
sudo ufw status numbered
Output esperado:
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 22/tcp (v6) ALLOW IN Anywhere (v6)
Verificação de iptables
Se você usa iptables diretamente, verifique se não há regras bloqueando a porta 22:
sudo iptables -L -n | grep 22
Para permitir SSH temporariamente:
sudo iptables -I INPUT -p tcp --dport 22 -j ACCEPT
Resolução de problemas de autenticação SSH
Erros de autenticação SSH frequentemente resultam de configurações incorretas no arquivo sshd_config ou problemas com chaves SSH. A configuração adequada destes elementos é crucial para restaurar o acesso.
Examine o arquivo de configuração principal do SSH:
sudo nano /etc/ssh/sshd_config
Verifique estas configurações essenciais:
Port 22
PermitRootLogin yes
PasswordAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Atenção: Permitir login root com senha pode ser um risco de segurança. Use apenas temporariamente para diagnóstico.
Após modificar o arquivo, reinicie o serviço SSH:
sudo systemctl restart ssh
Para problemas com chaves SSH, verifique as permissões do diretório .ssh:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown $USER:$USER ~/.ssh -R
Teste de conectividade local
Teste a conexão SSH localmente no servidor:
ssh localhost
Se funcionar localmente mas não remotamente, o problema está na rede ou firewall externo.
Verificação e desbloqueio do fail2ban
O fail2ban é uma ferramenta de segurança que pode bloquear automaticamente IPs após tentativas de login falhadas. Verificar se seu IP foi bloqueado é essencial para restaurar a conectividade SSH.
Verifique se o fail2ban está instalado e rodando:
sudo systemctl status fail2ban
Liste as regras ativas do fail2ban:
sudo fail2ban-client status
Verifique especificamente a jail do SSH:
sudo fail2ban-client status sshd
Output típico mostrando IPs bloqueados:
Status for the jail: sshd
|- Filter
| |- Currently failed: 2
| |- Total failed: 15
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 1
|- Total banned: 3
`- Banned IP list: 192.168.1.100
Para desbloquear seu IP:
sudo fail2ban-client set sshd unbanip SEU_IP_AQUI
Para desabilitar temporariamente o fail2ban:
sudo systemctl stop fail2ban
Configuração de whitelist no fail2ban
Para evitar bloqueios futuros, adicione seu IP à whitelist editando o arquivo de configuração:
sudo nano /etc/fail2ban/jail.local
Adicione a seção:
[DEFAULT]
ignoreip = 127.0.0.1/8 ::1 SEU_IP_AQUI
Reinicie o fail2ban:
sudo systemctl restart fail2ban
Problemas comuns e como resolver
Sintoma: Connection refused (Conexão recusada)
Causa: O serviço SSH não está rodando ou a porta está bloqueada pelo firewall.
Solução: Execute sudo systemctl start ssh para iniciar o serviço e sudo ufw allow 22 para liberar a porta. Confirme o status com sudo systemctl status ssh.
Sintoma: Connection timeout (Timeout de conexão)
Causa: Problema de rede, firewall externo ou configuração incorreta de DNS.
Solução: Verifique a conectividade com ping IP_DO_SERVIDOR, confirme se o IP está correto e teste de diferentes redes. Verifique também se não há bloqueio no firewall do provedor de internet.
Sintoma: Permission denied (Permissão negada)
Causa: Credenciais incorretas, chave SSH inválida ou configuração restritiva no sshd_config.
Solução: Verifique se está usando a senha correta, confirme as permissões da chave SSH (600) e revise as configurações de autenticação no arquivo /etc/ssh/sshd_config.
Sintoma: Host key verification failed
Causa: A chave do host mudou, indicando possível reinstalação do sistema ou ataque man-in-the-middle.
Solução: Se você reinstalou o sistema, remova a entrada antiga com ssh-keygen -R IP_DO_SERVIDOR e aceite a nova chave na próxima conexão.
Sintoma: Too many authentication failures
Causa: Muitas tentativas de autenticação falharam, possivelmente devido a múltiplas chaves SSH sendo testadas.
Solução: Use ssh -o IdentitiesOnly=yes -i /caminho/para/chave usuario@servidor para especificar apenas uma chave ou aguarde alguns minutos antes de tentar novamente.
Monitoramento e logs de SSH
O monitoramento adequado dos logs SSH é fundamental para identificar e prevenir problemas de conectividade futuros. Os logs fornecem informações detalhadas sobre tentativas de conexão e falhas de autenticação.
Examine os logs de autenticação em tempo real:
sudo tail -f /var/log/auth.log
Para buscar entradas específicas relacionadas ao SSH:
sudo grep "sshd" /var/log/auth.log | tail -20
Verifique tentativas de login falhadas:
sudo grep "Failed password" /var/log/auth.log
Para monitorar conexões SSH ativas:
who
w
Output esperado mostrando usuários conectados:
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.1.100 10:30 0.00s 0.04s 0.00s w
Configure logrotate para gerenciar o tamanho dos logs SSH:
sudo nano /etc/logrotate.d/rsyslog
Para mais informações sobre configuração de servidores VPS, consulte nosso guia sobre acessando servidores VPS Linux da AviraHost.
Perguntas frequentes sobre problemas de conectividade SSH
Por que não consigo conectar via SSH no meu VPS Linux?
As principais causas são firewall bloqueando a porta 22, serviço SSH parado, configuração incorreta de chaves ou IP bloqueado pelo fail2ban. Verifique primeiro se o serviço está rodando com 'systemctl status ssh' e se a porta 22 está aberta no firewall.
Como resolver erro 'Connection refused' no SSH?
Este erro indica que o serviço SSH não está rodando ou a porta está bloqueada. Execute 'sudo systemctl start ssh' para iniciar o serviço e 'sudo ufw allow 22' para liberar a porta no firewall. Confirme com 'sudo systemctl status ssh'.
O que fazer quando SSH apresenta timeout de conexão?
Timeout geralmente indica problema de rede ou firewall. Verifique se o IP do servidor está correto, teste conectividade com ping, e confirme se não há bloqueio no firewall local ou do provedor. Também verifique se o fail2ban não bloqueou seu IP.
Como corrigir erro de autenticação SSH 'Permission denied'?
Este erro ocorre por senha incorreta, chave SSH inválida ou configuração restritiva. Verifique se está usando as credenciais corretas, se a chave SSH está no formato adequado e se o arquivo authorized_keys tem as permissões corretas (600).
É seguro alterar a porta padrão do SSH?
Sim, alterar a porta 22 para outra aumenta a segurança reduzindo ataques automatizados. Edite o arquivo /etc/ssh/sshd_config, mude a linha 'Port 22' para uma porta alta (ex: 2222), reinicie o SSH e atualize o firewall para a nova porta.
Conclusão
- Sempre verifique primeiro se o serviço SSH está rodando e se o firewall permite conexões na porta 22
- Monitore regularmente os logs de autenticação para identificar tentativas de acesso não autorizadas
- Configure adequadamente o fail2ban com whitelist de IPs confiáveis para evitar bloqueios acidentais
Precisa de ajuda com seu VPS Linux?
Nossa equipe especializada oferece suporte técnico completo para configuração e manutenção de servidores VPS Ubuntu 22.04. Resolvemos problemas de conectividade SSH e otimizamos a segurança do seu servidor.