Cititorii ca tine ajută la sprijinirea MUO. Când efectuați o achiziție folosind link-uri de pe site-ul nostru, este posibil să câștigăm un comision de afiliat. Citeşte mai mult.

SSH este un protocol de rețea care vă permite să accesați și să gestionați în siguranță un sistem de la distanță printr-o rețea. În timp ce vă conectați la o mașină de la distanță prin SSH, este posibil să fi întâlnit eroarea „conexiune refuzată”. Întâmpinarea acestei probleme poate fi frustrantă, mai ales dacă sunteți administrator de sistem și trebuie să efectuați urgent unele sarcini pe sistemul de la distanță.

Să ne uităm la unele dintre posibilele cauze ale erorii SSH „conexiune refuzată” și metodele de rezolvare.

1. Verificați dacă este instalat un server SSH

O posibilă cauză a erorii „conexiune refuzată” este că mașina de la distanță nu funcționează un server SSH. Fără serverul SSH, aparatul nu va accepta conexiuni SSH de intrare și nu îl veți putea accesa de la distanță.

Prin urmare, primul pas în depanarea erorii este să verificați dacă un server SSH este instalat pe mașina de la distanță. Utilizați următoarea comandă pentru a verifica instalarea serverului SSH:

Pe distribuțiile bazate pe Debian:

dpkg --list | grep ssh

Pe distribuțiile bazate pe RHEL:

lista yum instalată | grep ssh

Pe openSUSE:

zypper căutare -i | grep ssh

Pe distribuțiile bazate pe Arch:

pacman -Q | grep ssh

Dacă serverul SSH este instalat pe mașina de la distanță, îl veți vedea listat în rezultat. Altfel, trebuie instalați serverul OpenSSH pe mașina de la distanță doriți să accesați prin SSH. OpenSSH este o versiune open source a instrumentelor SSH pentru accesarea și controlul de la distanță a sistemelor.

Pentru a instala serverul OpenSSH, utilizați următoarele comenzi:

Pe distribuțiile bazate pe Debian:

sudo apt install openssh-server

Pe distribuțiile bazate pe RHEL:

sudo yum install openssh-server

Pe openSUSE:

sudo zypper install openssh

Pe distribuțiile bazate pe Arch:

pacman -S openssh

2. Verificați starea serviciului SSH

Un alt motiv pentru a primi eroarea „conexiune refuzată” poate fi faptul că serviciul SSH este dezactivat sau nu rulează pe mașina de la distanță. Odată ce sunteți sigur că serverul SSH este instalat, al doilea lucru pe care trebuie să-l verificați este starea serverului.

sudo systemctl status sshd

Dacă serviciul este activ și rulează, rezultatul îl va indica ca activ (alergare). Altfel, vei vedea ceva de genul inactiv (mort).

Dacă serverul SSH nu rulează, îl puteți porni manual folosind următoarea comandă:

sudo systemctl start sshd

De asemenea, puteți activa serviciul să pornească automat la pornire cu:

sudo systemctl enable sshd

3. Verificați portul SSH

În mod implicit, serverul SSH rulează pe portul 22. Cu toate acestea, se poate schimba portul implicit. Prin urmare, dacă primiți eroarea SSH „conexiune refuzată”, aceasta poate fi pentru că încercați să vă conectați la serverul SSH pe portul implicit 22 în timp ce acesta rulează pe un alt port.

Puteți utilizați comanda netstat cu grep pentru a găsi portul pe care îl ascultă serverul SSH:

sudo netstat -plntu | grep ssh

De asemenea, puteți găsi portul SSH din sshd_config fișier folosind următoarea comandă:

portul grep /etc/ssh/sshd_config

După ce ați identificat portul SSH corect, încercați să vă conectați la sistemul dvs. de la distanță folosind acel port specific.

4. Verificați firewall-ul sistemului dvs

Majoritatea problemelor de conectivitate apar din cauza paravanului de protecție al mașinii care blochează unele porturi sau servicii. Dacă mașina de la distanță are serverul SSH instalat și rulează, următorul pas este să vă verificați firewall-ul.

Pentru a afla dacă firewall-ul blochează conexiunea, dezactivați temporar firewall-ul utilizând următoarele comenzi:

Pe distribuțiile Linux bazate pe Debian și Arch:

sudo ufw dezactivare

Pe distribuțiile bazate pe RHEL și openSUSE:

sudo systemctl dezactivează firewalld

Dacă eroarea nu apare după dezactivarea firewall-ului, înseamnă că firewall-ul bloca conexiunea. În acest caz, reactivați paravanul de protecție și adăugați o regulă care permite SSH.

Pe distribuțiile Linux bazate pe Debian și Arch, utilizați următoarea comandă pentru a permite accesul SSH firewall-ul UFW:

sudo ufw permit ssh

Alternativ, puteți permite SSH și prin numărul portului din firewall. Să presupunem că serverul SSH folosește portul 5555, atunci veți folosi următoarea comandă pentru a-l permite în firewall:

sudo ufw allow 5555

Pentru a verifica dacă regula a fost adăugată cu succes, verificați starea UFW:

sudo ufw status

Pe distribuțiile bazate pe RHEL și pe openSUSE, utilizați următoarea comandă pentru a permite SSH în firewall:

sudo firewall-cmd --permanent --add-service=ssh

Pentru a permite SSH prin numărul de port, utilizați următoarea comandă:

sudo firewall-cmd --permanent --add-port={port}/tcp

Pentru un server SSH care rulează pe portul 4444, comanda ar fi:

sudo firewall-cmd --permanent --add-port=4444/tcp

Pentru a verifica adăugarea cu succes a regulii în firewall, rulați:

sudo firewall-cmd --list-all

5. Rezolvarea conflictelor de adrese IP

Există, de asemenea, șansa ca eroarea SSH „conexiune refuzată” să apară din cauza IP-ului serverului SSH în conflict cu IP-ul altui sistem din rețea. Acest lucru se întâmplă atunci când două sisteme dintr-o rețea pretind că au aceeași adresă IP, rezultând un conflict IP.

Pentru a confirma dacă există un conflict IP în rețeaua dvs., utilizați instrumentul arp-scan după cum urmează:

arp-scan [id-rețea]

Dacă există un conflict IP, veți vedea adresa IP duplicată în rezultat. Captura de ecran de mai jos este un exemplu de conflict IP într-o rețea:

Pentru a evita conflictele IP, asigurați-vă că niciun dispozitiv nu are adrese IP statice care se suprapun cu adresele pool-ului DHCP.

Sfat bonus: rulați SSH în modul Verbose

Ori de câte ori întâmpinați o eroare SSH, încercați să rulați comanda ssh în modul verbose pentru a identifica problema. Pentru a rula SSH în modul verbose, utilizați comanda ssh cu -vvv opțiune după cum urmează:

ssh -vvv nume utilizator@adresa_ip

În modul verbose, veți vedea mesaje de depanare în fiecare pas al conexiunii, care vă vor ajuta să înțelegeți unde se află problema.

Depanarea erorii SSH „Conexiune refuzată” pe Linux

Prin identificarea cauzelor potențiale ale erorii de conectivitate SSH și prin implementarea soluțiilor sugerate, veți putea depana și rezolva eroarea „conexiune refuzată” SSH. În plus față de acești pași, asigurați-vă că vă conectați la adresa IP corectă și că utilizați acreditările de conectare corecte.

Pentru a face conexiunea la distanță mai sigură, puteți configura autentificarea cu doi factori pentru SSH pe Linux.