Kako otkloniti pogreške na SSH vezama

How Debug Ssh Connections



Ovaj će vodič proučiti neke brze metode i tehnike koje možete koristiti za dijagnosticiranje različitih SSH veza, uključujući kada se ne možete povezati na SSH, pogreške autentifikacije i slično.

BILJEŠKA: Prije početka provjerite je li uređaj s kojim se želite povezati online i pogreška nije posljedica nedostupnosti uređaja.







Pitanje 1: SSH usluga ne radi

Uobičajeni uzrok pogrešaka SSH veze je usluga koja se ne izvodi na udaljenom hostu. To može biti zbog slučajnog isključivanja usluge ili servisa koji se ne pokreće nakon ponovnog pokretanja sustava.



Da biste provjerili radi li SSH usluga, upotrijebite upravitelj sustava pomoću naredbe:



sudosystemctl status sshd

Gornja naredba trebala bi izvještavati radi li usluga ili ne, kao što je prikazano na snimkama zaslona u nastavku.







Riješenje

Da biste riješili probleme sa SSH -om uzrokovane time što usluga ne radi, upotrijebite sustav za pokretanje usluge. Ako usluga odgovori s pogreškama, provjerite zapisnike i riješite probleme prijavljene u zapisniku.

Pomoću donje naredbe provjerite zapisnike usluga.

zahvat 'sshd' /gdje/zapisnik/auth.log

Pomoću donje naredbe pokrenite ili zaustavite SSH uslugu pomoću systemd.

sudosystemctl start sshd

2. pitanje: SSH na nestandardnom priključku

Drugi uobičajeni problem pri otklanjanju pogrešaka na SSH vezama je upotreba nestandardnog porta. Ako SSH radi na drugom portu koji nije zadani port 22, nećete se povezati s udaljenim hostom ako izričito ne navedete port na kojem se SSH izvodi.

Da biste vidjeli port na kojem radi SSH, upotrijebite alat kao što je netstat na sljedeći način:

[stotine@centos8 ~]$sudo netstat -ptln | zahvat ssh
tcp0 00,0,0,0:560,0,0,0:*SLUŠATI1131/sshd
tcp60 0:::56:::*SLUŠATI1131/sshd

Gornji izlaz pokazuje na kojem priključku radi SSH usluga. U ovom slučaju radi se o priključku 56.

Riješenje

Da biste riješili ovaj problem, možete koristiti informacije iz netstata za izričito navođenje priključka u vašoj naredbi ssh kao:

sshKorisničko ime@ip -str 56

Pitanje 3: Druga usluga koja koristi isti port

Drugi uzrok pogrešaka SSH povezivanja je ako druga usluga ili proces također koristi isti port kao i SSH usluga. Na primjer, ako je SSH izričito navedeno da radi na portu 80 (strašna ideja), usluga poput Apachea možda koristi isti port.

Da biste vidjeli koristi li drugi proces isti port kao SSH, provjerite zapisnike pomoću naredbe:

sudojournalctl-tsshd

Ova naredba trebala bi vratiti grešku poput one prikazane u nastavku, koja pokazuje koristi li drugi proces SSH-vezani port.

sshd[110611]: error: Veza na port80na 0.0.0.0 nije uspjelo: Adresa većukoristiti

Dobro je osigurati da je pogrešku povezivanja porta uzrokovala druga usluga, a ne sigurnosne mjere kao što je SELinux.

Riješenje

Postoje različiti načini na koje možete riješiti ovaj problem. To uključuje:

Prvi je vezanje SSH usluge na drugi port. To možete učiniti uređivanjem konfiguracijske datoteke SSH. Na primjer, promijenite unos porta u port 3009 kao što je prikazano u naredbama:

sudo nano /itd/ssh/sshd_config
Luka3009

Druga metoda koju možete koristiti za rješavanje ovog problema je zaustavljanje usluge pomoću SSH priključka. Na primjer, zaustavite apache uslugu koristeći port 80 kao:

sudosystemctl zaustavi httpd
sudosystemctl onemogući httpd

Pitanje 4: Vatrozid

Ako ste isprobali sve gore navedene metode, a još uvijek nemate SSH vezu, možete prijeći na sljedeći mogući uzrok problema: Ograničenja vatrozida. Ovisno o metodi vatrozida koju koristite (UFW ili Iptables), morate osigurati da vatrozid dopušta SSH veze.

Riješenje

Pravila vatrozida široka su i mogu se razlikovati ovisno o konfiguraciji sustava. Stoga ne mogu obuhvatiti svaki aspekt. Međutim, sljedeće je jednostavno rješenje kako biste osigurali da je SSH usluga dopuštena na UFW vatrozidu.

sudoufw dopustiti<ssh_port> /tcp

Također možete poništiti sva pravila UFW -a i početi iznova. To će vam omogućiti rješavanje problema s vezama vatrozida od nule.

sudoufw reset

Pitanje 5: Onemogućene prijave lozinkom

Ponekad možete konfigurirati SSH da ne prihvaća prijave lozinkom i koristi samo provjeru autentičnosti putem javnog ključa. To može uzrokovati problem ako javni ključ nije dostupan na poslužitelju ili nedostaje vaš par privatnih ključeva.

Da biste provjerili jesu li dopuštene prijave lozinkom, označite ssh konfiguraciju kao:

[stotine@centos8]$sudo zahvatAutentifikacija lozinke/itd/ssh/sshd_config
#Provjera autentičnosti lozinke da
Autentifikacija lozinkeDa
# PasswordAuthentication. Ovisno o vašoj PAM konfiguraciji,
# PAM autentifikacija, zatim omogućite ovu postavku, ali postavite PasswordAuthentication

Gornji izlaz pokazuje da je prijava lozinkom dopuštena.

Riješenje

Da biste riješili gornji problem, možete koristiti dvije metode:

Prvo, ako imate vrijednost postavljenu na ne, promijenite vrijednost PasswordAuthentication na da i ponovno pokrenite uslugu ssh.

Druga metoda je stvoriti ssh par ključ-vrijednost i koristiti ga za prijavu na poslužitelj. Da biste saznali kako stvoriti ssh par ključ-vrijednost, upotrijebite sljedeći vodič.

https://linuxhint.com/find-ssh-public-key/

https://linuxhint.com/use-ssh-copy-id-command/

Zaključak

U ovom kratkom vodiču raspravljali smo o glavnim uzrocima pogrešaka SSH veze i načinima na koje ih možete riješiti. Iako ovaj vodič pokriva uobičajene probleme, možda ćete pronaći greške specifične za vaš sustav na temelju konfiguracije i dopuštenja.