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.logUtilizați comanda de mai jos pentru a porni sau opri serviciul SSH folosind systemd.
sudosystemctl începe sshdNumă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 sshtcp0 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 56Problema 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-tsshdAceastă 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înutilizareEste 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_configPort3009
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 httpdsudosystemctl 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> /tcpDe 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 resetProblema 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.