Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

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

9 min de leitura  ·  Guia técnico

Connection refused no SSH ocorre quando o cliente não consegue estabelecer conexão com o servidor, geralmente devido ao serviço SSH inativo, porta bloqueada ou configuração incorreta. A solução envolve verificar o status do serviço, configurar firewall e validar conectividade de rede.

Pré-requisitos

  • Acesso físico ao servidor ou console de gerenciamento
  • Privilégios de root ou sudo no sistema
  • Conhecimento básico de comandos Linux
  • Cliente SSH instalado (OpenSSH, PuTTY ou similar)

Verificando o status do serviço SSH

O primeiro passo para solucionar connection refused no SSH é verificar se o daemon SSH está executando no servidor. O serviço pode estar parado por diversos motivos, desde falhas na inicialização até problemas de configuração.

Execute o comando para verificar o status do SSH:

systemctl status ssh

Em sistemas CentOS/RHEL, use:

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:

sudo systemctl start ssh
sudo systemctl enable ssh

O comando enable garante que o SSH seja iniciado automaticamente durante o boot do sistema. Verifique novamente o status para confirmar que está rodando corretamente.

Configurando regras de firewall para SSH

Firewalls mal configurados são uma causa comum do erro connection refused SSH. O UFW (Uncomplicated Firewall) é amplamente usado em distribuições Ubuntu e pode estar bloqueando a porta 22 por padrão.

Verifique o status atual do firewall:

sudo ufw status

Se o UFW estiver ativo mas não mostrar regras para SSH, adicione a permissão:

sudo ufw allow ssh
sudo ufw allow 22/tcp

Para sistemas com iptables, verifique as regras existentes:

sudo iptables -L -n

Adicione regra para permitir SSH no iptables:

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

Em servidores com firewalld (CentOS/RHEL), use:

sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

Testando conectividade de rede e porta SSH

Problemas de conectividade de rede podem simular um erro connection refused mesmo quando o SSH está funcionando corretamente. É essencial testar a conectividade básica antes de investigar configurações mais complexas.

Teste a conectividade básica com ping:

ping -c 4 IP_DO_SERVIDOR

Verifique se a porta 22 está aberta e respondendo:

telnet IP_DO_SERVIDOR 22

Output esperado quando a porta está acessível:

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 portas abertas:

nmap -p 22 IP_DO_SERVIDOR

Se o telnet falhar mas o ping funcionar, o problema está na configuração do SSH ou firewall. Se ambos falharem, verifique a conectividade de rede e configurações de roteamento.

Analisando logs do SSH para diagnóstico

Os logs do sistema fornecem informações valiosas sobre falhas de conexão SSH e podem revelar problemas específicos de configuração ou tentativas de acesso negadas.

Visualize os logs recentes do SSH:

sudo tail -f /var/log/auth.log

Em sistemas CentOS/RHEL:

sudo tail -f /var/log/secure

Para ver logs específicos do systemd:

sudo journalctl -u ssh -f

Procure por mensagens como:

  • Connection closed by - indica tentativas de conexão rejeitadas
  • Failed password - problemas de autenticação
  • Permission denied - configurações de acesso restritivas
  • Bad protocol version - incompatibilidade de versões SSH

Aumente o nível de debug temporariamente editando /etc/ssh/sshd_config:

LogLevel DEBUG

Reinicie o SSH após a alteração:

sudo systemctl restart ssh

Verificando configuração do arquivo sshd_config

Configurações incorretas no arquivo principal do SSH podem causar falhas de conexão mesmo quando o serviço está rodando. É importante verificar parâmetros críticos que afetam a conectividade.

Abra o arquivo de configuração:

sudo nano /etc/ssh/sshd_config

Verifique estas configurações essenciais:

Port 22
ListenAddress 0.0.0.0
PermitRootLogin yes
PasswordAuthentication yes
PubkeyAuthentication yes

Se a porta foi alterada, certifique-se de que o firewall permite a nova porta:

sudo ufw allow NOVA_PORTA/tcp

Teste a configuração antes de aplicar:

sudo sshd -t

Output esperado se a configuração estiver correta:

# Nenhuma saída indica configuração válida

Aplique as alterações reiniciando o serviço:

sudo systemctl restart ssh

Atenção: Sempre mantenha uma sessão SSH ativa ao modificar configurações para evitar perder acesso ao servidor.

Problemas comuns e como resolver

Sintoma: SSH funciona localmente mas falha remotamente

Causa: Configuração de ListenAddress restritiva ou firewall externo bloqueando conexões.
Solução: Altere ListenAddress para 0.0.0.0 no sshd_config e verifique regras de firewall do provedor de rede. Teste conexão de diferentes redes para isolar o problema.

Sintoma: Conexão recusada após mudança de porta SSH

Causa: Nova porta não foi liberada no firewall ou cliente está tentando conectar na porta padrão.
Solução: Execute sudo ufw allow NOVA_PORTA/tcp e conecte especificando a porta: ssh -p NOVA_PORTA usuario@servidor. Verifique se o serviço está escutando na nova porta com netstat -tlnp | grep :PORTA.

Sintoma: Erro persiste mesmo com SSH ativo e firewall configurado

Causa: Processo SSH corrompido, falta de recursos do sistema ou bloqueio por fail2ban.
Solução: Reinicie completamente o SSH com sudo systemctl stop ssh && sudo systemctl start ssh. Verifique recursos com free -h e df -h. Consulte logs do fail2ban em /var/log/fail2ban.log e desbloqueie IP se necessário.

Sintoma: Connection refused intermitente

Causa: Limite de conexões simultâneas atingido ou problemas de DNS reverso.
Solução: Aumente MaxStartups no sshd_config para MaxStartups 30:30:100. Desabilite verificação DNS reversa com UseDNS no. Monitore conexões ativas com ss -tnlp | grep :22.

Perguntas frequentes sobre connection refused SSH

O que significa o erro 'Connection refused' no SSH?

O erro 'Connection refused' indica que o cliente SSH não conseguiu estabelecer conexão com o servidor. Isso geralmente acontece quando o serviço SSH não está rodando, a porta 22 está bloqueada pelo firewall ou o endereço IP está incorreto.

Como verificar se o SSH está rodando no servidor?

Execute o comando 'systemctl status ssh' ou 'systemctl status sshd' para verificar o status do serviço SSH. Se estiver inativo, inicie com 'systemctl start ssh' e habilite para inicialização automática com 'systemctl enable ssh'.

Qual porta o SSH usa por padrão e como alterar?

O SSH usa a porta 22 por padrão. Para alterar, edite o arquivo /etc/ssh/sshd_config, modifique a linha 'Port 22' para o número desejado e reinicie o serviço SSH. Lembre-se de liberar a nova porta no firewall.

Como liberar a porta SSH no firewall UFW?

Execute 'ufw allow 22/tcp' para liberar a porta padrão do SSH. Se alterou a porta, use 'ufw allow NOVA_PORTA/tcp'. Para verificar as regras ativas, use 'ufw status' e confirme que a porta SSH está listada como permitida.

O erro persiste mesmo com SSH rodando, o que fazer?

Verifique se o endereço IP está correto, teste conectividade com 'ping' e 'telnet IP 22'. Confirme se não há bloqueio no provedor de rede, verifique logs do SSH em /var/log/auth.log e teste conexão de outra rede para isolar o problema.

Conclusão

  • Sempre verifique o status do serviço SSH antes de investigar problemas de conectividade
  • Configure adequadamente as regras de firewall para permitir tráfego na porta SSH
  • Use logs do sistema para diagnosticar problemas específicos e identificar padrões de falha

Leia também

Precisa de ajuda com configuração de SSH?

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

Conheça nossos planos de VPS Linux

  • 0 Os usuários acharam isso útil
  • ssh, connection-refused, firewall, ubuntu, avirahost
Esta resposta foi útil?

Artigos Relacionados

Instalando painel de gerenciamento de hospedagem VirtualMin.

O virtualmin é um painel de gerenciamento de hospedagem de sites gratuito, que é suportado por...

Como usar a ferramenta oficial de acesso remoto do Windows no PC e celular

1. Pelo menu Iniciar, acesse os “Acessórios do Windows” e abra o “Conexão de Área de Trabalho...

Como acessar o painel de gerenciamento dos meus Serviços.

Para acessar o painel de gerenciamento do seu serviço basta seguir o passo á passo abaixo.   1....

Compreendendo o Servidor VPS: O que é e Como Funciona!

Um servidor VPS (Virtual Private Server) é uma solução de hospedagem na qual um servidor físico é...

Como trocar a senha do usuário root do servidor VPS ou Dedicado.

Para trocar a senha do usuário root em um servidor VPS da AviraHost, você pode seguir os...