JEGYZET: Mielőtt elkezdené, győződjön meg arról, hogy a csatlakoztatni kívánt eszköz online állapotban van, és a hiba nem az eszköz elérhetetlensége miatt következik be.
1. probléma: Az SSH szolgáltatás nem fut
Az SSH csatlakozási hibák gyakori oka, hogy a szolgáltatás nem fut a távoli gépen. Ennek oka lehet a szolgáltatás véletlen leállítása vagy a szolgáltatás nem indul el a rendszer újraindítása után.
Az SSH szolgáltatás futásának ellenőrzéséhez használja a rendszerkezelőt a következő paranccsal:
sudosystemctl állapot sshd
A fenti parancsnak jelentenie kell, hogy a szolgáltatás fut -e vagy sem, amint az az alábbi képernyőképeken látható.
Megoldás
A szolgáltatás nem futása által okozott SSH -problémák megoldásához használja a rendszert a szolgáltatás elindításához. Ha a szolgáltatás hibákkal válaszol, ellenőrizze a naplókat, és javítsa ki a naplóban jelentett problémákat.
Használja az alábbi parancsot a szolgáltatásnaplók ellenőrzéséhez.
markolat 'sshd' /ahol/napló/auth.logHasználja az alábbi parancsot az SSH szolgáltatás elindításához vagy leállításához a systemd használatával.
sudosystemctl start sshd2. szám: SSH a nem szabványos porton
A második gyakori probléma az SSH kapcsolatok hibakeresésekor a nem szabványos port használata. Ha az SSH az alapértelmezett 22 -es porttól eltérő porton fut, akkor nem fog csatlakozni a távoli gazdagéphez, hacsak nem adja meg kifejezetten azt a portot, amelyen az SSH fut.
Az SSH -n futó port megtekintéséhez használjon olyan eszközt, mint például az alábbi netstat:
[több száz@centos8 ~]$sudo netstat -ptln | markolat sshtcp0 00.0.0.0:560.0.0.0:*HALLGAT1131/sshd
tcp60 0:::56:::*HALLGAT1131/sshd
A fenti kimenet azt mutatja, hogy az SSH szolgáltatás melyik porton fut. Ebben az esetben ez az 56 -os port.
Megoldás
A probléma megoldásához a netstat információi segítségével kifejezetten megadhatja a portot az ssh parancsban:
sshfelhasználónév@ip -p 563. probléma: Egy másik szolgáltatás ugyanazt a portot használja
Az SSH csatlakozási hibák másik oka az, ha egy másik szolgáltatás vagy folyamat ugyanazt a portot használja, mint az SSH szolgáltatás. Például, ha az SSH -t kifejezetten a 80 -as porton való futásra határozták meg (szörnyű ötlet), akkor az Apache -hez hasonló szolgáltatás ugyanazt a portot használja.
Annak megtekintéséhez, hogy egy másik folyamat ugyanazt a portot használja -e, mint az SSH, ellenőrizze a naplókat a következő paranccsal:
sudojournalctl-tsshdEnnek a parancsnak az alább láthatóhoz hasonló hibát kell visszaadnia, jelezve, hogy egy másik folyamat használja-e az SSH-hoz kötött portot.
sshd[110611]: hiba: Kötés a porthoz80a 0.0.0.0 -on sikertelen: Cím márban benhasználatJó biztosítani, hogy a portkötési hibát más szolgáltatás okozza, nem pedig biztonsági intézkedések, például a SELinux.
Megoldás
Ennek a problémának a megoldására különféle módokat használhat. Ezek tartalmazzák:
Az első az SSH szolgáltatás másik porthoz való kötése. Ezt az SSH konfigurációs fájl szerkesztésével teheti meg. Például módosítsa a portbejegyzést a 3009 -es portra, ahogyan a parancsok mutatják:
sudo nano /stb./ssh/sshd_configKikötő3009
A probléma megoldásához egy másik módszer a szolgáltatás leállítása az SSH port használatával. Például állítsa le az apache szolgáltatást a 80 -as port használatával:
sudosystemctl stop httpdsudosystemctl letiltja a httpd -t
4. szám: Tűzfal
Ha a fenti módszerek mindegyikét kipróbálta, és még mindig nincs SSH -kapcsolat, akkor lépjen tovább a probléma következő lehetséges okára: a tűzfalkorlátozásokra. A használt tűzfal módszertől függően (UFW vagy Iptables) meg kell győződnie arról, hogy a tűzfal lehetővé teszi az SSH -kapcsolatokat.
Megoldás
A tűzfal szabályai szélesek, és a rendszer konfigurációjától függően változhatnak. Így nem tudok minden szempontot lefedni. A következő egyszerű megoldás azonban annak biztosítására, hogy az SSH szolgáltatás engedélyezett legyen az UFW tűzfalon.
sudoufw megengedi<ssh_port> /tcpAz összes UFW szabályt visszaállíthatja, és újrakezdheti. Ez lehetővé teszi a tűzfalkapcsolatok hibaelhárítását a semmiből.
sudoufw reset5. probléma: Letiltott jelszavas bejelentkezések
Néha beállíthatja az SSH-t, hogy ne fogadjon el jelszavas bejelentkezéseket, és csak nyilvános kulcsú hitelesítést használjon. Ez problémát okozhat, ha a nyilvános kulcs nem érhető el a szerveren, vagy hiányzik a privát kulcspárja.
Annak ellenőrzéséhez, hogy a jelszó -bejelentkezés engedélyezett -e, az ssh config -ot a következőképpen kell megadni:
[több száz@centos8]$sudo markolatJelszóhitelesítés/stb./ssh/sshd_config#PasswordAuthentication igen
JelszóhitelesítésIgen
# Jelszóhitelesítés. A PAM konfigurációjától függően
# PAM hitelesítés, akkor engedélyezze ezt, de állítsa be a PasswordAuthentication -t
A fenti kimenet azt mutatja, hogy a jelszó bejelentkezés engedélyezett.
Megoldás
A fenti probléma megoldásához két módszert használhat:
Először is, ha az értéke nem, akkor módosítsa a PasswordAuthentication értékét igenre, és indítsa újra az ssh szolgáltatást.
A másik módszer az, hogy hozzon létre egy ssh kulcs-érték párt, és ezzel jelentkezzen be a szerverre. Az alábbi útmutató segítségével megtudhatja, hogyan hozhat létre ssh kulcs-érték párt.
https://linuxhint.com/find-ssh-public-key/
https://linuxhint.com/use-ssh-copy-id-command/
Következtetés
Ebben a gyors útmutatóban az SSH csatlakozási hibák fő okairól és azok megoldásának módjáról beszéltünk. Bár ez az útmutató a gyakori problémákat tárgyalja, előfordulhat, hogy a rendszerre jellemző hibákat talál a konfiguráció és az engedélyek alapján.