Leitores como você ajudam a apoiar o MUO. Quando você faz uma compra usando links em nosso site, podemos ganhar uma comissão de afiliado. Consulte Mais informação.

SSH é um protocolo de rede que permite acessar e gerenciar com segurança um sistema remoto em uma rede. Ao conectar-se a uma máquina remota via SSH, você pode ter encontrado o erro "conexão recusada". Enfrentar esse problema pode ser frustrante, especialmente se você for um administrador de sistema e precisar executar algumas tarefas no sistema remoto com urgência.

Vejamos algumas das possíveis causas do erro SSH "conexão recusada" e métodos para resolvê-lo.

1. Verifique se um servidor SSH está instalado

Uma possível causa do erro "conexão recusada" é que a máquina remota não está em execução um servidor SSH. Sem o servidor SSH, a máquina não aceitará conexões SSH de entrada e você não poderá acessá-la remotamente.

Portanto, a primeira etapa para solucionar o erro é verificar se um servidor SSH está instalado na máquina remota. Use o seguinte comando para verificar a instalação do servidor SSH:

Em distribuições baseadas no Debian:

dpkg --lista | grep ssh

Em distribuições baseadas em RHEL:

lista yum instalada | grep ssh

No openSUSE:

pesquisa do zypper -i | grep ssh

Em distribuições baseadas em Arch:

pacman -Q | grep ssh

Se o servidor SSH estiver instalado na máquina remota, você o verá listado na saída. Caso contrário, você deve instale o servidor OpenSSH na máquina remota você deseja acessar via SSH. OpenSSH é uma versão de código aberto das ferramentas SSH para acesso remoto e controle de sistemas.

Para instalar o servidor OpenSSH, use os seguintes comandos:

Em distribuições baseadas no Debian:

sudo apt install openssh-server

Em distribuições baseadas em RHEL:

sudo yum install openssh-server

No openSUSE:

sudo zypper install openssh

Em distribuições baseadas em Arch:

pacman -S openssh

2. Verifique o status do serviço SSH

Outro motivo para obter o erro "conexão recusada" pode ser que o serviço SSH esteja desativado ou não esteja em execução na máquina remota. Depois de ter certeza de que o servidor SSH está instalado, a segunda coisa que você precisa verificar é o status do servidor.

sudo systemctl status sshd

Se o serviço estiver funcionando, a saída o indicará como ativo (em execução). Caso contrário, você verá algo como inativo (morto).

Se o servidor SSH não estiver em execução, você pode iniciá-lo manualmente usando o seguinte comando:

sudo systemctl start sshd

Você também pode ativar o serviço para iniciar automaticamente na inicialização com:

sudo systemctl ativar sshd

3. Verifique a porta SSH

Por padrão, o servidor SSH é executado na porta 22. No entanto, pode-se alterar a porta padrão. Portanto, se você receber o erro SSH "conexão recusada", pode ser porque você está tentando se conectar ao servidor SSH na porta padrão 22 enquanto ele está sendo executado em alguma porta diferente.

Você pode use o comando netstat com grep para encontrar a porta em que o servidor SSH está escutando:

sudo netstat -plntu | grep ssh

Você também pode encontrar a porta SSH no sshd_config arquivo usando o seguinte comando:

porta grep /etc/ssh/sshd_config

Depois de identificar a porta SSH correta, tente conectar-se ao seu sistema remoto usando essa porta específica.

4. Verifique o firewall do seu sistema

A maioria dos problemas de conectividade ocorre devido ao bloqueio do firewall da sua máquina em algumas portas ou serviços. Se a máquina remota tiver o servidor SSH instalado e em execução, a próxima etapa é verificar seu firewall.

Para descobrir se o firewall está bloqueando a conexão, desative temporariamente o firewall usando os seguintes comandos:

Em distribuições Linux baseadas em Debian e Arch:

sudo ufw desativar

Em distribuições baseadas em RHEL e openSUSE:

sudo systemctl desativar firewalld

Se o erro não aparecer após desabilitar o firewall, significa que o firewall estava bloqueando a conexão. Nesse caso, reative o firewall e adicione uma regra que permita SSH.

Em distribuições Linux baseadas em Debian e Arch, use o seguinte comando para permitir SSH em o firewall UFW:

sudo ufw permitir ssh

Como alternativa, você também pode permitir o SSH pelo número da porta no firewall. Digamos que o servidor SSH esteja usando a porta 5555, então você usaria o seguinte comando para permitir no firewall:

sudo ufw permitir 5555

Para verificar se a regra foi adicionada com sucesso, verifique o status do UFW:

sudo ufw status

Em distribuições baseadas em RHEL e openSUSE, use o seguinte comando para permitir SSH no firewall:

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

Para permitir SSH por número de porta, use o seguinte comando:

sudo firewall-cmd --permanent --add-port={porta}/tcp

Para um servidor SSH rodando na porta 4444, o comando seria:

sudo firewall-cmd --permanent --add-port=4444/tcp

Para verificar a adição bem-sucedida da regra no firewall, execute:

sudo firewall-cmd --list-all

5. Resolver conflitos de endereço IP

Também há uma chance de o erro "conexão recusada" do SSH ocorrer devido ao conflito do IP do servidor SSH com o IP de outro sistema na rede. Isso acontece quando dois sistemas em uma rede afirmam ter o mesmo endereço IP, resultando em um conflito de IP.

Para confirmar se há um conflito de IP em sua rede, use a ferramenta arp-scan da seguinte maneira:

arp-scan [id da rede]

Se houver um conflito de IP, você verá o endereço IP duplicado na saída. A captura de tela abaixo é um exemplo de um conflito de IP em uma rede:

Para evitar conflitos de IP, certifique-se de que nenhum dispositivo tenha endereços IP estáticos que se sobreponham aos endereços do pool DHCP.

Dica de bônus: execute o SSH no modo detalhado

Sempre que encontrar um erro SSH, tente executar o comando ssh no modo detalhado para rastrear o problema. Para executar o SSH no modo detalhado, use o comando ssh com o -vvv opção da seguinte forma:

ssh -vvv nome de usuário@endereço_ip

No modo detalhado, você verá mensagens de depuração em cada etapa da conexão que o ajudarão a entender onde está o problema.

Solucionando problemas do erro SSH "Connection Refused" no Linux

Ao identificar as possíveis causas do erro de conectividade SSH e implementar as soluções sugeridas, você poderá solucionar problemas e resolver o erro SSH "conexão recusada". Além dessas etapas, verifique se você está se conectando ao endereço IP correto e usando as credenciais de login corretas.

Para tornar sua conexão remota mais segura, você pode configurar a autenticação de dois fatores para SSH no Linux.