SSH je omrežni protokol, ki vam omogoča varen dostop in upravljanje oddaljenega sistema prek omrežja. Med povezovanjem z oddaljenim računalnikom prek SSH ste morda naleteli na napako »povezava zavrnjena«. Doživljanje te težave je lahko frustrirajoče, zlasti če ste sistemski skrbnik in morate nujno opraviti nekaj nalog v oddaljenem sistemu.
Oglejmo si nekaj možnih vzrokov za napako »povezava zavrnjena« SSH in metode za njeno odpravo.
1. Preverite, ali je strežnik SSH nameščen
Eden od možnih vzrokov za napako »povezava zavrnjena« je, da oddaljeni stroj ne deluje strežnik SSH. Brez strežnika SSH stroj ne bo sprejemal dohodnih povezav SSH in do njega ne boste mogli dostopati na daljavo.
Zato je prvi korak pri odpravljanju napake preverjanje, ali je na oddaljeni napravi nameščen strežnik SSH. Za preverjanje namestitve strežnika SSH uporabite naslednji ukaz:
Pri distribucijah, ki temeljijo na Debianu:
dpkg --seznam | grep ssh
Pri distribucijah, ki temeljijo na RHEL:
nameščen seznam yum | grep ssh
Na openSUSE:
zypper iskanje -i | grep ssh
Pri distribucijah, ki temeljijo na Archu:
pacman -Q | grep ssh
Če je strežnik SSH nameščen na oddaljeni napravi, ga boste videli naveden v izhodu. V nasprotnem primeru morate namestite strežnik OpenSSH na oddaljeni računalnik želite dostopati prek SSH. OpenSSH je odprtokodna različica orodij SSH za oddaljeni dostop in nadzor sistemov.
Če želite namestiti strežnik OpenSSH, uporabite naslednje ukaze:
Pri distribucijah, ki temeljijo na Debianu:
sudo apt namestite openssh-strežnik
Pri distribucijah, ki temeljijo na RHEL:
sudo yum namestite openssh-strežnik
Na openSUSE:
sudo zypper namestite openssh
Pri distribucijah, ki temeljijo na Archu:
pacman -S openssh
2. Preverite stanje storitve SSH
Drug razlog za prikaz napake »povezava zavrnjena« je lahko, da je storitev SSH onemogočena ali da se ne izvaja na oddaljenem računalniku. Ko ste prepričani, da je strežnik SSH nameščen, je druga stvar, ki jo morate preveriti, stanje strežnika.
sudo systemctl status sshd
Če je storitev vzpostavljena in deluje, bo izhod to označil kot aktiven (teče). V nasprotnem primeru boste videli nekaj podobnega neaktiven (mrtev).
Če strežnik SSH ne deluje, ga lahko zaženete ročno z naslednjim ukazom:
sudo systemctl zagon sshd
Storitvi lahko omogočite tudi samodejni zagon ob zagonu z:
sudo systemctl omogoči sshd
3. Preverite vrata SSH
Strežnik SSH privzeto deluje na vratih 22. Vendar pa lahko spremenite privzeta vrata. Torej, če prejmete napako SSH "povezava zavrnjena", je to morda zato, ker se poskušate povezati s strežnikom SSH na privzetih vratih 22, medtem ko se ta izvaja na drugih vratih.
Ti lahko uporabite ukaz netstat z grep za iskanje vrat, ki jih strežnik SSH posluša:
sudo netstat -plntu | grep ssh
Vrata SSH najdete tudi v sshd_config datoteko z naslednjim ukazom:
grep port /etc/ssh/sshd_config
Ko ugotovite pravilna vrata SSH, se poskusite povezati z oddaljenim sistemom prek teh specifičnih vrat.
4. Preverite sistemski požarni zid
Večina težav s povezljivostjo se pojavi, ker požarni zid vaše naprave blokira nekatera vrata ali storitve. Če ima oddaljena naprava nameščen in deluje strežnik SSH, je naslednji korak preverjanje požarnega zidu.
Če želite ugotoviti, ali požarni zid blokira povezavo, začasno onemogočite požarni zid z naslednjimi ukazi:
V distribucijah Linuxa Debian in Arch:
sudo ufw onemogoči
Pri distribucijah, ki temeljijo na RHEL, in openSUSE:
sudo systemctl onemogoči požarni zid
Če se po onemogočitvi požarnega zidu napaka ne prikaže, to pomeni, da je požarni zid blokiral povezavo. V tem primeru znova omogočite požarni zid in dodajte pravilo, ki dovoljuje SSH.
V distribucijah Linuxa, ki temeljijo na Debianu in Archu, uporabite naslednji ukaz, da omogočite vstop SSH požarni zid UFW:
sudo ufw dovoli ssh
Druga možnost je, da SSH dovolite tudi s številko vrat v požarnem zidu. Recimo, da strežnik SSH uporablja vrata 5555, potem bi uporabili naslednji ukaz, da bi ga dovolili v požarnem zidu:
sudo ufw dovoli 5555
Če želite preveriti, ali je bilo pravilo uspešno dodano, preverite stanje UFW:
stanje sudo ufw
V distribucijah, ki temeljijo na RHEL, in openSUSE uporabite naslednji ukaz, da omogočite SSH v požarnem zidu:
sudo firewall-cmd --permanent --add-service=ssh
Če želite omogočiti SSH po številki vrat, uporabite naslednji ukaz:
sudo firewall-cmd --permanent --add-port={port}/tcp
Za strežnik SSH, ki deluje na vratih 4444, bi bil ukaz:
sudo firewall-cmd --permanent --add-port=4444/tcp
Če želite preveriti uspešno dodajanje pravila v požarni zid, zaženite:
sudo firewall-cmd --list-all
5. Rešite spore naslovov IP
Obstaja tudi možnost, da pride do napake SSH »povezava zavrnjena«, ker je IP strežnika SSH v sporu z IP-jem drugega sistema v omrežju. To se zgodi, ko dva sistema v omrežju trdita, da imata enak naslov IP, kar povzroči konflikt IP.
Če želite preveriti, ali je v vašem omrežju spor IP, uporabite orodje za pregledovanje arp, kot sledi:
arp-scan [id-omrežja]
Če pride do spora IP, boste v izhodu videli podvojen naslov IP. Spodnji posnetek zaslona je primer spora IP v omrežju:
Da se izognete sporom IP, poskrbite, da nobena naprava nima statičnih naslovov IP, ki se prekrivajo z naslovi skupine DHCP.
Dodatni nasvet: zaženite SSH v podrobnem načinu
Kadar koli naletite na napako SSH, poskusite zagnati ukaz ssh v podrobnem načinu, da izsledite težavo. Če želite zagnati SSH v podrobnem načinu, uporabite ukaz ssh z -vvv možnost kot sledi:
ssh -vvv uporabniško ime@ip_naslov
V podrobnem načinu boste v vsakem koraku povezave videli sporočila o odpravljanju napak, ki vam bodo pomagala razumeti, kje je težava.
Odpravljanje napake SSH »Povezava zavrnjena« v sistemu Linux
Z odkrivanjem morebitnih vzrokov za napako povezljivosti SSH in implementacijo predlaganih rešitev boste lahko odpravili in razrešili napako SSH »povezava zavrnjena«. Poleg teh korakov se prepričajte, da se povezujete s pravilnim naslovom IP in uporabljate prave poverilnice za prijavo.
Da bo vaša oddaljena povezava varnejša, lahko nastavite dvostopenjsko avtentikacijo za SSH v sistemu Linux.