POZNÁMKA: Skôr ako začnete, uistite sa, že zariadenie, ku ktorému sa chcete pripojiť, je online a chyba nie je dôsledkom toho, že zariadenie nie je k dispozícii.
Problém 1: Služba SSH nie je spustená
Bežnou príčinou chýb pripojenia SSH je služba, ktorá nie je spustená na vzdialenom hostiteľovi. Príčinou môže byť náhodné vypnutie alebo nespustenie služby po reštarte systému.
Ak chcete skontrolovať, či je služba SSH spustená, použite správcu systému pomocou príkazu:
sudosystemctl status sshd
Vyššie uvedený príkaz by mal hlásiť, či je služba spustená alebo nie, ako je to znázornené na obrázkoch nižšie.
Riešenie
Ak chcete vyriešiť problémy s SSH spôsobené službou, ktorá nie je spustená, spustite ju pomocou systému. Ak služba odpovie chybami, skontrolujte denníky a opravte problémy uvedené v denníku.
Na kontrolu servisných denníkov použite nasledujúci príkaz.
uchopenie 'sshd' /kde/log/auth.logNa spustenie alebo zastavenie služby SSH pomocou systemd použite nasledujúci príkaz.
sudosystemctl start sshdProblém 2: SSH na neštandardnom porte
Druhým bežným problémom pri ladení pripojení SSH je použitie neštandardného portu. Ak SSH beží na inom porte, než je predvolený port 22, nebudete sa môcť pripojiť k vzdialenému hostiteľovi, pokiaľ výslovne neurčíte port, na ktorom je SSH spustené.
Na zobrazenie portu, na ktorom je spustený SSH, použite nástroj, ako je netstat, ako je uvedené nižšie:
[stovky@centos8 ~]$sudo netstat -ptln | uchopenie sshtcp0 00,0.0,0:560,0.0,0:*POČÚVAJTE1131/sshd
tcp60 0:::56:::*POČÚVAJTE1131/sshd
Vyššie uvedený výstup ukazuje, na ktorom porte je služba SSH spustená. V tomto prípade je to port 56.
Riešenie
Na vyriešenie tohto problému môžete použiť informácie zo servera netstat na explicitné zadanie portu v príkaze ssh ako:
sshpoužívateľské meno@ip -p 56Problém 3: Ďalšia služba používajúca rovnaký port
Ďalšou príčinou chýb pripojenia SSH je, ak ten istý port ako služba SSH používa aj iná služba alebo proces. Napríklad, ak je SSH výslovne špecifikované na spustenie na porte 80 (hrozný nápad), služba ako Apache môže používať rovnaký port.
Ak chcete zistiť, či iný proces používa rovnaký port ako SSH, skontrolujte denníky pomocou príkazu:
sudojournalctl-tsshdTento príkaz by mal vrátiť chybu podobnú tej, ktorá je zobrazená nižšie, čo naznačuje, či iný proces používa port viazaný na SSH.
sshd[110611]: chyba: Viazať na port80dňa 0.0.0.0 zlyhalo: Adresa už jevpoužívaťJe dobré zaistiť, aby chybu viazania portu spôsobovala iná služba, nie bezpečnostné opatrenia, ako napríklad SELinux.
Riešenie
Na vyriešenie tohto problému môžete použiť niekoľko spôsobov. Tie obsahujú:
Prvým je väzba služby SSH na iný port. Môžete to urobiť úpravou konfiguračného súboru SSH. Zmeňte napríklad položku Port na port 3009, ako je znázornené v príkazoch:
sudo nano /atď/ssh/sshd_configPrístav3009
Ďalšou metódou, ktorú môžete použiť na vyriešenie tohto problému, je zastaviť službu pomocou portu SSH. Zastavte napríklad službu apache pomocou portu 80 ako:
sudosystemctl stop httpdsudosystemctl zakázať httpd
Problém 4: Firewall
Ak ste vyskúšali všetky vyššie uvedené metódy a stále nemáte pripojenie SSH, môžete prejsť na ďalšiu možnú príčinu problému: obmedzenia brány firewall. V závislosti od použitej metódy brány firewall (UFW alebo Iptables) musíte zaistiť, aby brána firewall umožňovala pripojenie SSH.
Riešenie
Pravidlá brány firewall sú široké a môžu sa líšiť v závislosti od konfigurácie systému. Preto nemôžem pokryť všetky aspekty. Nasleduje však jednoduché riešenie, ako zaistiť, aby bola služba SSH povolená v bráne firewall UFW.
sudoufw povoliť<ssh_port> /tcpMôžete tiež resetovať všetky pravidlá UFW a začať odznova. To vám umožní úplne od začiatku riešiť problémy s pripojením brány firewall.
sudoufw resetProblém 5: Zakázané prihlasovanie pomocou hesla
Niekedy môžete nakonfigurovať SSH tak, aby neprijímal prihlasovacie údaje do hesla a používal iba autentifikáciu pomocou verejného kľúča. To môže spôsobiť problém, ak verejný kľúč nie je k dispozícii na serveri alebo vám chýba pár súkromných kľúčov.
Ak chcete skontrolovať, či je prihlásenie pomocou hesla povolené, vyhľadajte konfiguráciu ssh ako:
[stovky@centos8]$sudo uchopenieOverenie hesla/atď/ssh/sshd_config#PasswordAuthentication áno
Overenie heslaÁno
# Overenie hesla. V závislosti od konfigurácie PAM,
# Autentifikácia PAM, potom povoľte, ale nastavte PasswordAuthentication
Vyššie uvedený výstup ukazuje, že prihlásenie pomocou hesla je povolené.
Riešenie
Na vyriešenie vyššie uvedeného problému môžete použiť dve metódy:
Najprv, ak máte hodnotu nastavenú na nie, zmeňte hodnotu PasswordAuthentication na yes a reštartujte službu ssh.
Ďalšou metódou je vytvoriť pár ssh kľúč-hodnota a použiť ho na prihlásenie sa na server. Ak sa chcete dozvedieť, ako vytvoriť pár kľúč-hodnota ssh, použite nasledujúci návod.
https://linuxhint.com/find-ssh-public-key/
https://linuxhint.com/use-ssh-copy-id-command/
Záver
V tejto stručnej príručke sme diskutovali o hlavných príčinách chýb pripojenia SSH a o tom, ako ich môžete vyriešiť. Aj keď sa táto príručka zaoberá bežnými problémami, na základe konfigurácie a povolení môžete nájsť chyby špecifické pre váš systém.