OBSERVAÇÃO: Antes de começar, verifique se o dispositivo para o qual você deseja se conectar está online e o erro não é resultado do dispositivo estar indisponível.
Edição 1: Serviço SSH não está em execução
Uma causa comum de erros de conexão SSH é o serviço que não está em execução no host remoto. Isso pode ser devido a desligamento acidental de serviço ou serviço não iniciado após uma reinicialização do sistema.
Para verificar se o serviço SSH está em execução, use o gerenciador do sistema usando o comando:
SUDO SYSTEMCTL STATUS SSHD
O comando acima deve relatar se o serviço estiver em execução ou não, como mostrado nas capturas de tela abaixo.
Solução
Para resolver problemas de SSH causados pelo serviço que não está em execução, use o sistema para iniciar o serviço. Se o serviço responder com erros, verifique os logs e corrija os problemas relatados no log.
Use o comando abaixo para verificar os logs de serviço.
grep 'sshd'/var/log/auth.registro
Use o comando abaixo para iniciar ou interromper o serviço SSH usando o Systemd.
sudo systemctl start sshd
Edição 2: SSH em porta fora do padrão
A segunda questão comum ao depurar conexões SSH é o uso de uma porta não padrão. Se o SSH estiver em execução em outra porta que não seja a porta padrão 22, você não se conectará ao host remoto, a menos que especifique explicitamente a porta na qual o SSH está executando.
Para visualizar a porta em que o SSH está em execução, use uma ferramenta como o NetStat como abaixo:
[CENTOS@CENTOS8 ~] $ SUDO NETSTAT -PTLN | Grep SSH
TCP 0 0 0.0.0.0:56 0.0.0.0:* Ouça 1131/sshd
tcp6 0 0 ::: 56 :::* Ouça 1131/sshd
A saída acima mostra em qual porta o serviço SSH está sendo executado. Nesse caso, é a porta 56.
Solução
Para resolver esse problema, você pode usar as informações do NetStat para especificar explicitamente a porta em seu comando ssh como:
Nome de usuário ssh@ip -p 56
Edição 3: Outro serviço usando a mesma porta
Outra causa de erros de conexão SSH é se outro serviço ou processo também usar a mesma porta que o serviço SSH. Por exemplo, se o SSH for explicitamente especificado para ser executado na porta 80 (IDEA TERRÍVEL), um serviço como o Apache pode estar usando a mesma porta.
Para visualizar se outro processo estiver usando a mesma porta que o SSH, verifique os logs usando o comando:
SUDO Journalctl -t SSHD
Este comando deve retornar um erro como o mostrado abaixo, indicando se outro processo usa a porta ligada à SSH.
SSHD [110611]: Erro: ligue para a porta 80 em 0.0.0.0 falha: endereço já em uso
É bom garantir que o erro de ligação da porta seja causado por outro serviço, não por medidas de segurança como Selinux.
Solução
Existem várias maneiras de usar para resolver este problema. Esses incluem:
O primeiro é vincular o serviço ssh a uma porta diferente. Você pode fazer isso editando o arquivo de configuração SSH. Por exemplo, altere a entrada da porta para a porta 3009, conforme mostrado nos comandos:
sudo nano/etc/ssh/sshd_config
Porta 3009
Outro método que você pode usar para resolver esse problema é interromper o serviço usando a porta SSH. Por exemplo, pare o serviço Apache usando a porta 80 como:
sudo systemctl pare httpd
sudo systemctl desativando httpd
Edição 4: Firewall
Se você tentou todos os métodos acima e ainda não há conexão SSH, poderá passar para a próxima causa possível da questão: restrições de firewall. Dependendo do método do firewall que você está usando (UFW ou iptables), você precisa garantir que o firewall permita conexões SSH.
Solução
As regras do firewall são amplas e podem variar dependendo da configuração do sistema. Assim, não posso cobrir todos os aspectos. No entanto, a seguir é uma solução simples para garantir que o serviço SSH seja permitido no UFW Firewall.
sudo ufw permitir/tcp
Você também pode redefinir todas as regras da UFW e começar de novo. Isso permitirá que você solucione as conexões do firewall do zero.
SUDO UFW Reset
Edição 5: Logins de senha desativados
Às vezes você pode configurar o SSH para não aceitar logins de senha e usar apenas a autenticação de chave pública. Isso pode causar um problema se a chave pública não estiver disponível no servidor ou perdendo seu par de chaves privadas.
Para verificar se os logins de senha são permitidos, CAT a configuração SSH como:
[CENTOS@CENTOS8] $ SUDO GREP PasswordAthentication/etc/ssh/sshd_config
#PasswordAuthentication Sim
PasswordAuthentication Sim
# PasswordAuthentication. Dependendo da sua configuração de PAM,
# Autenticação PAM, então ative isso, mas defina a senha da autenticação
A saída acima mostra que os logins de senha são permitidos.
Solução
Para resolver o problema acima, você pode usar dois métodos:
Primeiro, se você tiver o valor definido como não, altere o valor da senha da autenticação para sim e reiniciar o serviço SSH.
O outro método é criar um par de valores de chave SSH e usá-lo para fazer login no servidor. Para aprender a criar o par de valores-chave SSH, use o seguinte guia.
https: // linuxhint.com/find-ssh-public-key/
https: // linuxhint.com/use-ssh-copy-id-command/
Conclusão
Neste guia rápido, discutimos as principais causas de erros de conexão SSH e como você pode resolvê -los. Embora este guia abranja problemas comuns, você pode encontrar erros específicos para o seu sistema com base na configuração e permissões.