Ako ladiť pripojenia SSH

How Debug Ssh Connections



Tento tutoriál sa zameriava na niekoľko rýchlych metód a techník, ktoré môžete použiť na diagnostiku rôznych pripojení SSH, vrátane prípadov, keď sa nemôžete pripojiť k SSH, chýb autentifikácie a podobne.

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

Na spustenie alebo zastavenie služby SSH pomocou systemd použite nasledujúci príkaz.

sudosystemctl start sshd

Problé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 ssh
tcp0 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 56

Problé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-tsshd

Tento 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_config
Prí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 httpd
sudosystemctl 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> /tcp

Môž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 reset

Problé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.