SSH är det säkraste sättet att fjärransluta till Linuxservrar. Och ett av de vanligaste felen som uppstår när du använder SSH är ”ssh: connect to host port 22: No route to host”. I den här korta artikeln kommer vi att visa hur man felsöker och åtgärdar det här felet.
Här är en skärmdump av felet vi pratar om. Observera att porten inte nödvändigtvis behöver vara port 22, beroende på dina konfigurationer på fjärrvärden. Som en säkerhetsåtgärd kan systemadministratörer konfigurera SSH så att åtkomst sker via en annan port.
Det finns olika anledningar till att det här felet visas. Den första är normalt att fjärrservern kan vara nere, så du måste kontrollera om den är igång med hjälp av ping-kommandot.
# ping 192.168.56.100
Utifrån resultatet av ping-kommandot är servern igång, det är därför den accepterar pingarna. I det här fallet är orsaken till felet något annat.
Om du har en brandväggstjänst som körs på din fjärrserver är det möjligt att brandväggen blockerar åtkomst via port 22.
Därför måste du få fysisk åtkomst till serverkonsolen, eller om det är en VPS kan du använda något annat sätt, t.ex. VNC (om den redan är konfigurerad) eller andra anpassade program för fjärråtkomst till servern som tillhandahålls av din leverantör av VPS-tjänster. Logga in och öppna en kommandotolk.
Använd sedan firewall-cmd (RHEL/CentOS/Fedora) eller UFW (Debian/Ubuntu) för att öppna port 22 (eller den port som du har konfigurerat för SSH) i brandväggen enligt följande.
# firewall-cmd --permanent --add-port=22/tcp# firewall-cmd --reloadOR$ sudo ufw allow 22/tcp$ sudo ufw reload
Försök nu att återansluta till fjärrservern en gång till via SSH.
$ ssh [email protected]
Det var allt för tillfället! Du kommer också att finna följande SSH-guider användbara:
- Hur man ändrar SSH-port i Linux
- Hur man skapar SSH-tunnel eller portvidarebefordran i Linux
- Hur man inaktiverar SSH-rotinloggning i Linux
- 4 sätt att snabba upp SSH-anslutningar i Linux
- Hur man hittar alla misslyckade SSH-inloggningsförsök i Linux