Az SSH kapcsolatok hibakeresése

How Debug Ssh Connections



Ez az oktatóanyag áttekint néhány gyors módszert és technikát, amelyekkel diagnosztizálhat különböző SSH -kapcsolatokat, beleértve azokat az eseteket is, amikor nem tud csatlakozni az SSH -hoz, hitelesítési hibákat stb.

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.log

Haszná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 sshd

2. 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 ssh
tcp0 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 56

3. 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-tsshd

Ennek 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álat

Jó 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_config
Kikö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 httpd
sudosystemctl 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> /tcp

Az ö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 reset

5. 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.