SSH é o meio mais seguro de conexão remota a servidores Linux. E um dos erros comuns encontrados durante o uso do SSH é o “ssh: connect to host port 22: No route to host”. Neste pequeno artigo, vamos mostrar como solucionar e corrigir este erro.
Aqui está uma imagem do erro de que estamos a falar. Note que a porta pode não ser necessariamente a porta 22, dependendo das suas configurações no host remoto. Como medida de segurança, os administradores do sistema podem configurar o SSH para ser acessado através de uma porta diferente.
Existem diferentes razões para este erro aparecer. A primeira é normalmente que o servidor remoto pode estar em baixo, por isso é necessário verificar se está a funcionar utilizando o comando ping.
# ping 192.168.56.100
Do resultado do comando ping, o servidor está a funcionar, por isso está a aceitar os pings. Neste caso, o motivo do erro é outra coisa.
Se tiver um serviço de firewall a correr no seu servidor remoto, é possível que o firewall esteja a bloquear o acesso através da porta 22.
Por isso precisa de aceder fisicamente à consola do servidor ou se for um VPS, pode usar qualquer outro meio como o VNC (isto é, se já estiver configurado) ou outras aplicações personalizadas de acesso remoto ao servidor fornecidas pelo seu fornecedor de serviços VPS. Faça login, e aceda a um prompt de comando.
Depois utilize a firewall-cmd (RHEL/CentOS/Fedora) ou UFW (Debian/Ubuntu) para abrir a porta 22 (ou a porta que configurou para ser utilizada para SSH) na firewall como se segue.
# firewall-cmd --permanent --add-port=22/tcp# firewall-cmd --reloadOR$ sudo ufw allow 22/tcp$ sudo ufw reload
Tente agora voltar a ligar ao servidor remoto via SSH.
$ ssh [email protected]
É tudo por agora! Você também encontrará úteis os seguintes guias SSH:
- Como mudar a porta SSH no Linux
- Como criar túneis SSH ou encaminhamento de portas no Linux
- Como desativar o login de root SSH no Linux
- 4 Maneiras de acelerar as conexões SSH no Linux
- Como encontrar todas as tentativas de login de SSH falhadas no Linux