Observação: Os comandos discutidos aqui foram testados no Ubuntu 20.04 LTS. Os mesmos comandos também são válidos para o sistema Debian.
Corrigir erro de conexão recusada
Este é o erro "Conexão recusada" que você pode encontrar ao se conectar a um sistema remoto por SSH.
Siga as soluções abaixo passo a passo para resolver o erro “Conexão recusada”.
Certifique-se de que o OpenSSH esteja instalado
Um dos motivos pelos quais você pode receber um erro de “Conexão recusada” é porque o servidor OpenSSH não está instalado no servidor de destino.
Primeiro, você precisa se certificar de que o servidor OpenSSH está instalado no sistema que você está tentando acessar via SSH. Para verificar se o OpenSSH está instalado ou não, emita o seguinte comando no Terminal do servidor de destino:
$ sudo apt list --instalado | grep openssh-serverEste comando basicamente filtra o termo “openssh-server” da lista de pacotes instalados. Se você receber a seguinte saída semelhante, isso indica que o servidor OpenSSH está instalado. Por outro lado, se você não receber nenhuma saída, significa que OpenSSH está faltando no servidor de destino.
Caso não esteja instalado no servidor de destino, você pode instalá-lo usando o seguinte comando como sudo:
$ sudo apt install servidor opensshEm seguida, digite a senha do sudo e, quando for solicitada a confirmação, pressione 'y'. Uma vez instalado, confirme usando o mesmo comando
$ sudo apt list --instalado | grep openssh-serverVerifique o serviço SSH
O serviço OpenSSH é executado em segundo plano e escuta as conexões de entrada. O serviço OpenSSH interrompido pode ser um dos motivos pelos quais você está recebendo um erro de "Conexão recusada".
Portanto, é necessário verificar se o serviço OpenSSH está rodando ou não utilizando o seguinte comando no Terminal:
$ sudo service ssh statusSe você vir a seguinte saída, significa que o serviço está ativo e em execução em segundo plano.
Por outro lado, se você receber inativo (morto), isso significa que o serviço não está funcionando. Você pode executar o serviço OpenSSH usando o seguinte comando como sudo no Terminal:
$ sudo service ssh startPara reiniciar o serviço, use o seguinte comando:
$ sudo service ssh restartVerifique a porta de escuta do servidor SSH
Outro motivo para receber o erro “Conexão recusada” é porque você está tentando se conectar à porta errada. Por exemplo, se o servidor estiver configurado para escutar na porta 2244 e você estiver tentando se conectar à porta padrão 22, então, neste caso, você receberá um erro de “Conexão recusada”.
Antes de tentar se conectar, você precisa verificar a porta de escuta do servidor SSH. Se for a porta padrão (22), você pode conectá-la usando o seguinte comando:
$ ssh [nome de usuário] @ [IP do servidor remoto ou nome do host]Se for alguma porta diferente da porta padrão, você precisará se conectar ao servidor SSH usando esta porta:
$ ssh -p [port_number] [username] @ [ip_address]Para verificar em qual porta o servidor OpenSSH está escutando; use o seguinte comando no Terminal:
$ sudo netstat -ltnp | grep sshdVocê receberá uma saída semelhante a esta:
Na terceira coluna, você pode ver que a porta de escuta do servidor é 2244. Se for este o caso, você precisará se conectar ao servidor SSH usando esta porta.
$ ssh -p [2244] [nome de usuário] @ [ip_address]Permitir SSH no firewall
O firewall bloqueando a porta SSH pode ser outro motivo importante para o erro de "Conexão recusada". Se um firewall estiver em execução no servidor SSH, você precisará permitir a porta SSH nele usando o seguinte comando. Substitua o porta pelo número da porta que o servidor SSH está escutando:
$ sudo ufw permitir porta / tcpPor exemplo, se o servidor SSH estiver escutando a porta 2244, você pode permitir isso no firewall como:
$ sudo ufw allow 2244 / tcp
Recarregue o firewall usando o seguinte comando:
$ sudo ufw reloadPara confirmar se as regras foram adicionadas, verifique o status do firewall usando o seguinte comando no Terminal:
$ sudo ufw statusO resultado a seguir mostra que a porta 2244 é permitida no firewall.
Resolva o conflito de endereço IP duplicado
O erro “Conexão recusada” também pode ocorrer devido a conflito de endereço IP duplicado. Portanto, certifique-se de que o sistema não tenha um endereço IP duplicado.
Instale o utilitário arping em seu sistema usando o seguinte comando:
$ sudo apt install arpingEm seguida, execute ping no endereço IP do servidor SSH.
$ pingNa saída, se você vir a resposta de mais de um endereço MAC, isso mostra que há um IP duplicado em execução no sistema. Nesse caso, altere o endereço IP do servidor SSH e tente se conectar novamente com o novo endereço IP.
Esta é a forma de corrigir o erro “Conexão recusada” pela porta 22 em sistemas Linux. Neste artigo, descrevemos algumas maneiras que certamente irão ajudá-lo a resolver o erro “Conexão recusada”.