Cum să depanați conexiunile SSH

How Debug Ssh Connections



Acest tutorial va trece în revistă câteva metode și tehnici rapide pe care le puteți utiliza pentru a diagnostica diferite conexiuni SSH, inclusiv atunci când nu vă puteți conecta la SSH, erori de autentificare și altele.

NOTĂ: Înainte de a începe, asigurați-vă că dispozitivul la care doriți să vă conectați este online și că eroarea nu este rezultatul indisponibilității dispozitivului.







Problema 1: Serviciul SSH nu rulează

O cauză comună a erorilor de conexiune SSH este serviciul care nu rulează pe gazda de la distanță. Acest lucru se poate datora închiderii accidentale a serviciului sau a service-ului care nu pornește după repornirea sistemului.



Pentru a verifica dacă serviciul SSH rulează, utilizați managerul de sistem folosind comanda:



sudosystemctl status sshd

Comanda de mai sus ar trebui să raporteze dacă serviciul rulează sau nu, așa cum se arată în capturile de ecran de mai jos.







Soluţie

Pentru a rezolva problemele SSH cauzate de neefectuarea serviciului, utilizați sistemul pentru a porni serviciul. Dacă serviciul răspunde cu erori, verificați jurnalele și remediați problemele raportate în jurnal.

Utilizați comanda de mai jos pentru a verifica jurnalele de servicii.

prindere „sshd” /Unde/Buturuga/auth.log

Utilizați comanda de mai jos pentru a porni sau opri serviciul SSH folosind systemd.

sudosystemctl începe sshd

Numărul 2: SSH pe port non-standard

A doua problemă comună la depanarea conexiunilor SSH este utilizarea unui port non-standard. Dacă SSH rulează pe alt port decât portul implicit 22, nu vă veți conecta la gazda la distanță decât dacă specificați în mod explicit portul pe care rulează SSH.

Pentru a vizualiza portul pe care rulează SSH, utilizați un instrument precum netstat după cum urmează:

[sute@centos8 ~]$sudo netstat -ptln | prindere ssh
tcp0 00.0.0.0:560.0.0.0:*ASCULTA1131/sshd
tcp60 0:::56:::*ASCULTA1131/sshd

Ieșirea de mai sus arată pe ce port se execută serviciul SSH. În acest caz, este portul 56.

Soluţie

Pentru a rezolva această problemă, puteți utiliza informațiile de la netstat pentru a specifica în mod explicit portul din comanda ssh ca:

sshnume de utilizator@ip -p 56

Problema 3: Un alt serviciu care utilizează același port

O altă cauză a erorilor de conexiune SSH este dacă un alt serviciu sau proces folosește același port ca și serviciul SSH. De exemplu, dacă SSH este specificat în mod explicit pentru a rula pe portul 80 (idee teribilă), un serviciu precum Apache poate folosi același port.

Pentru a vedea dacă un alt proces utilizează același port ca SSH, verificați jurnalele folosind comanda:

sudojournalctl-tsshd

Această comandă ar trebui să returneze o eroare ca cea de mai jos, indicând dacă un alt proces utilizează portul legat de SSH.

sshd[110611]: eroare: Legare la port80pe 0.0.0.0 eșuat: Adresa dejaînutilizare

Este bine să vă asigurați că eroarea de legare a portului este cauzată de un alt serviciu, nu de măsuri de securitate precum SELinux.

Soluţie

Există diferite moduri în care puteți utiliza pentru a rezolva această problemă. Acestea includ:

Primul este să legați serviciul SSH de un alt port. Puteți face acest lucru editând fișierul de configurare SSH. De exemplu, schimbați intrarea portului în portul 3009 așa cum se arată în comenzi:

sudo nano /etc./ssh/sshd_config
Port3009

O altă metodă pe care o puteți utiliza pentru a rezolva această problemă este oprirea serviciului folosind portul SSH. De exemplu, opriți serviciul apache folosind portul 80 ca:

sudosystemctl stop httpd
sudosystemctl dezactivează httpd

Problema 4: Firewall

Dacă ați încercat toate metodele de mai sus și încă nu aveți conexiune SSH, puteți trece la următoarea cauză posibilă a problemei: restricții firewall. În funcție de metoda Firewall pe care o utilizați (UFW sau Iptables), trebuie să vă asigurați că firewall-ul permite conexiuni SSH.

Soluţie

Regulile firewall-ului sunt largi și pot varia în funcție de configurația sistemului. Astfel, nu pot acoperi fiecare aspect. Cu toate acestea, următoarea este o soluție simplă pentru a vă asigura că serviciul SSH este permis pe UFW Firewall.

sudoufw permite<ssh_port> /tcp

De asemenea, puteți reseta toate regulile UFW și puteți începe din nou. Acest lucru vă va permite să depanați conexiunile firewall de la zero.

sudoufw reset

Problema 5: Conectare parolă dezactivată

Uneori puteți configura SSH să nu accepte autentificările prin parolă și să utilizeze numai autentificarea cu cheie publică. Acest lucru poate cauza o problemă dacă cheia publică nu este disponibilă pe server sau lipsește perechea dvs. de chei private.

Pentru a verifica dacă sunt permise conectările la parolă, introduceți configurația ssh ca:

[sute@centos8]$sudo prindereAutentificare parolă/etc./ssh/sshd_config
#PasswordAuthentication da
Autentificare parolăda
# Autentificare parolă. În funcție de configurația dvs. PAM,
# Autentificare PAM, apoi activați acest lucru, dar setați PasswordAuthentication

Ieșirea de mai sus arată că sunt permise conectările la parolă.

Soluţie

Pentru a rezolva problema de mai sus, puteți utiliza două metode:

În primul rând, dacă aveți valoarea setată la nu, schimbați valoarea PasswordAuthentication la yes și reporniți serviciul ssh.

Cealaltă metodă este de a crea o pereche ssh cheie-valoare și de a o utiliza pentru a vă conecta la server. Pentru a afla cum să creați perechea cheie-valoare ssh, utilizați următorul ghid.

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

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

Concluzie

În acest ghid rapid, am discutat cauzele majore ale erorilor de conexiune SSH și modul în care le puteți rezolva. Deși acest ghid acoperă probleme comune, este posibil să găsiți erori specifice sistemului dvs. pe baza configurației și a permisiunilor.