Notă: Comenzile discutate aici au fost testate pe Ubuntu 20.04 LTS. Aceleași comenzi sunt valabile și pentru sistemul Debian.
Remediere eroare conexiune refuzată
Aceasta este eroarea de refuzare a conexiunii pe care o puteți întâlni în timp ce vă conectați la un sistem la distanță prin SSH.
Urmați soluțiile de mai jos pas cu pas pentru a rezolva eroarea de refuzare a conexiunii.
Asigurați-vă că este instalat OpenSSH
Unul dintre motivele pentru care ați putea primi o eroare de conexiune refuzată este că serverul OpenSSH nu este instalat pe serverul țintă.
În primul rând, va trebui să vă asigurați că serverul OpenSSH este instalat pe sistemul la care încercați să accesați prin SSH. Pentru a verifica dacă OpenSSH este instalat sau nu, lansați următoarea comandă în Terminalul serverului țintă:
$sudolista apt--instalat | prindereopenssh-server
Această comandă filtrează practic termenul openssh-server din lista pachetelor instalate. Dacă primiți următoarea ieșire similară, aceasta indică faptul că serverul OpenSSH este instalat. Pe de altă parte, dacă nu primiți nicio ieșire, înseamnă că OpenSSH lipsește pe serverul țintă.
În cazul în care nu este instalat pe serverul țintă, îl puteți instala folosind următoarea comandă ca sudo:
$sudoaptinstalareopenssh-serverApoi tastați parola sudo și, când vi se solicită confirmarea, apăsați pe „y”. Odată instalat, confirmați-l folosind aceeași comandă
$sudolista apt--instalat | prindereopenssh-serverVerificați serviciul SSH
Serviciul OpenSSH rulează în fundal și ascultă conexiunile primite. Serviciul OpenSSH oprit poate fi unul dintre motivele pentru care primiți o eroare de conexiune refuzată.
Prin urmare, este necesar să verificați dacă serviciul OpenSSH rulează sau nu utilizând următoarea comandă în Terminal:
$sudoserviciusshstareDacă vedeți următoarea ieșire, înseamnă că serviciul este activ și rulează în fundal.
Pe de altă parte, dacă primiți inactiv (mort), asta înseamnă că serviciul nu funcționează . Puteți rula serviciul OpenSSH folosind următoarea comandă ca sudo în Terminal:
$sudoserviciusshstartPentru a reporni serviciul, utilizați următoarea comandă:
$sudoserviciusshrepornireVerificați portul de ascultare a serverului SSH
Un alt motiv pentru a primi o eroare de conexiune refuzată este că încercați să vă conectați la un port greșit. De exemplu, dacă serverul este configurat să asculte pe portul 2244 și încercați să vă conectați la portul său implicit 22, atunci, în acest caz, veți primi o eroare de conexiune refuzată.
Înainte de a încerca să vă conectați, trebuie să verificați portul de ascultare al serverului SSH. Dacă este portul implicit (22), îl puteți conecta folosind următoarea comandă:
$ssh [nume de utilizator]@[IP telecomandă saunumele gazdei]Dacă este un alt port decât portul implicit, va trebui să vă conectați la serverul SSH folosind acest port:
$ssh -p [numarul portului] [nume de utilizator]@[adresa IP]Pentru a verifica pe ce port ascultă serverul OpenSSH; utilizați următoarea comandă în Terminal:
$sudo netstat -ltnp | prinderesshdVeți primi o ieșire similară cu următoarea:
În a treia coloană, puteți vedea că portul de ascultare al serverului este 2244. Dacă acesta este cazul, va trebui să vă conectați la serverul SSH folosind acest port.
$ssh -p [2244] [nume de utilizator]@[adresa IP]Permiteți SSH în firewall
Paravanul de protecție care blochează portul SSH poate fi un alt motiv major pentru eroarea de refuzare a conexiunii. Dacă un server firewall rulează pe serverul SSH, va trebui să permiteți portul SSH din acesta utilizând următoarea comandă. Inlocuieste port după numărul de port pe care îl ascultă serverul SSH:
$sudoufw permite portul/tcpDe exemplu, dacă serverul SSH ascultă portul 2244, îl puteți permite în firewall ca:
$sudoufw permite2244/tcp
Reîncărcați paravanul de protecție folosind următoarea comandă:
$sudoufw reîncarcăPentru a confirma dacă regulile au fost adăugate, verificați starea firewall-ului folosind următoarea comandă din Terminal:
$sudostarea ufwUrmătoarea ieșire arată că portul 2244 este permis în firewall.
Rezolvarea conflictului de adresă IP duplicat
Eroarea de refuzare a conexiunii poate apărea și din cauza conflictului de adrese IP duplicat. Deci, asigurați-vă că sistemul nu are o adresă IP duplicată.
Instalați utilitarul arping pe sistemul dvs. utilizând următoarea comandă:
$sudoaptinstalarearpareApoi faceți ping la adresa IP a serverului SSH.
$ping <adresa IP>În ieșire, dacă vedeți răspunsul de la mai multe adrese MAC, atunci arată că există un IP duplicat care rulează pe sistem. Dacă acesta este cazul, modificați adresa IP a serverului SSH și încercați să vă conectați din nou cu noua adresă IP.
Acesta este modul în care se poate remedia eroarea conexiunii refuzate de portul 22 din sistemele Linux. În acest articol, am descris câteva moduri care cu siguranță vă vor ajuta să rezolvați eroarea conexiunii refuzate.