Notă: Comenzile discutate aici au fost testate pe Ubuntu 20.04 LTS. Aceleași comenzi sunt valabile și pentru sistemul Debian.
Remediați eroarea de refuzare a conexiunii
Aceasta este eroarea „Conexiune refuzată” 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 „Conexiune refuzată”.
Asigurați-vă că OpenSSH este instalat
Unul dintre motivele pentru care este posibil să primiți o eroare „Conexiune refuzată” este că serverul OpenSSH nu este instalat pe serverul țintă.
Mai întâi, 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ă:
$ sudo apt list --instalat | grep openssh-serverAceastă 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:
$ sudo apt instalează openssh-serverApoi tastați parola sudo și, când vi se solicită confirmarea, apăsați „y”. Odată instalat, confirmați-l folosind aceeași comandă
$ sudo apt list --instalat | grep openssh-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 „Conexiune refuzată”.
Prin urmare, este necesar să verificați dacă serviciul OpenSSH rulează sau nu utilizând următoarea comandă în Terminal:
$ sudo service ssh statusDacă 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 rulează. Puteți rula serviciul OpenSSH folosind următoarea comandă ca sudo în Terminal:
$ sudo service ssh startPentru a reporni serviciul, utilizați următoarea comandă:
$ sudo service ssh repornițiVerificați portul de ascultare a serverului SSH
Un alt motiv pentru a primi o eroare „Conexiunea refuzată” este că încercați să vă conectați la portul 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 „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 sau nume de gazdă la distanță]Dacă este un alt port decât portul implicit, va trebui să vă conectați la serverul SSH folosind acest port:
$ ssh -p [număr_port] [nume utilizator] @ [adresă_ip]Pentru a verifica pe ce port ascultă serverul OpenSSH; utilizați următoarea comandă în Terminal:
$ sudo netstat -ltnp | grep sshdVeț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
Firewall-ul care blochează portul SSH poate fi un alt motiv major pentru eroarea „Conexiune refuzată”. Dacă rulează un firewall 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:
$ sudo ufw permite portul / tcpDe exemplu, dacă serverul SSH ascultă portul 2244, îl puteți permite în firewall ca:
$ sudo ufw permit 2244 / tcp
Reîncărcați paravanul de protecție folosind următoarea comandă:
$ sudo ufw reîncarcăPentru a confirma dacă regulile au fost adăugate, verificați starea firewallului folosind următoarea comandă în Terminal:
starea $ sudo ufwUrmătoarea ieșire arată că portul 2244 este permis în firewall.
Rezolvarea conflictului de adrese IP duplicat
Eroarea „Conexiune refuzată” 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ă:
$ sudo apt install arpingApoi faceți ping la adresa IP a serverului SSH.
$ pingÎ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 de remediere a erorii „Conexiune refuzată” de portul 22 din sistemele Linux. În acest articol, am descris câteva moduri care cu siguranță vă vor ajuta să rezolvați eroarea „Conexiunea refuzată”.