SSH on võrguprotokoll, mis võimaldab teil võrgu kaudu turvaliselt kaugsüsteemile juurde pääseda ja seda hallata. SSH kaudu kaugmasinaga ühenduse loomisel võisite ilmneda tõrketeade "ühendamisest keelduti". Selle probleemi kogemine võib olla masendav, eriti kui olete süsteemiadministraator ja peate kiiresti täitma kaugsüsteemis mõnda toimingut.
Vaatame mõningaid võimalikke põhjuseid, miks SSH-i tõrketeade "ühendusest keelduti", ja selle lahendamise meetodeid.
1. Kontrollige, kas SSH-server on installitud
Üks võimalik tõrke "ühendusest keeldumine" põhjus on see, et kaugmasin ei tööta SSH-server. Ilma SSH-serverita ei võta masin vastu sissetulevaid SSH-ühendusi ja te ei saa sellele kaugjuurdepääsu.
Seega on tõrkeotsingu esimene samm kontrollida, kas kaugmasinasse on installitud SSH-server. Kasutage SSH-serveri installimise kontrollimiseks järgmist käsku:
Debianil põhinevate distributsioonide puhul:
dpkg --list | grep ssh
RHEL-põhistel distributsioonidel:
yum list installitud | grep ssh
OpenSUSE-s:
zypper otsing -i | grep ssh
Arch-põhistel distributsioonidel:
pacman -Q | grep ssh
Kui SSH-server on kaugmasinasse installitud, näete seda väljundis. Vastasel juhul peate installige OpenSSH-server kaugmasinasse soovite SSH kaudu juurde pääseda. OpenSSH on SSH-tööriistade avatud lähtekoodiga versioon süsteemidele kaugjuurdepääsuks ja -juhtimiseks.
OpenSSH-serveri installimiseks kasutage järgmisi käske:
Debianil põhinevate distributsioonide puhul:
sudo apt install openssh-server
RHEL-põhistel distributsioonidel:
sudo yum install openssh-server
OpenSUSE-s:
sudo zypper install openssh
Arch-põhistel distributsioonidel:
pacman -S openssh
2. Kontrollige SSH teenuse olekut
Teine põhjus, miks tõrketeade "ühendusest keelduti", võib olla see, et SSH-teenus on keelatud või ei tööta kaugmasinas. Kui olete veendunud, et SSH-server on installitud, peate teiseks kontrollima serveri olekut.
sudo systemctl olek sshd
Kui teenus on käivitatud ja töötab, näitab väljund seda järgmiselt aktiivne (jooksev). Vastasel juhul näete midagi sarnast passiivne (surnud).
Kui SSH-server ei tööta, saate selle käsitsi käivitada, kasutades järgmist käsku:
sudo systemctl start sshd
Samuti saate lubada teenuse automaatse käivitamise käivitamisel:
sudo systemctl lubab sshd
3. Kontrollige SSH-porti
Vaikimisi töötab SSH-server pordil 22. Vaikimisi porti saab siiski muuta. Seega, kui saate SSH-i tõrketeate "ühendusest keelduti", võib põhjus olla selles, et proovite SSH-serveriga ühendust luua vaikepordis 22, kui see töötab mõnes teises pordis.
Sa saad kasutage käsku netstat kasutades grep, et leida port, mida SSH-server kuulab:
sudo netstat -plntu | grep ssh
SSH-pordi leiate ka aadressilt sshd_config faili kasutades järgmist käsku:
grep port /etc/ssh/sshd_config
Pärast õige SSH-pordi tuvastamist proovige luua ühendus oma kaugsüsteemiga, kasutades seda konkreetset porti.
4. Kontrollige oma süsteemi tulemüüri
Enamik ühenduvusprobleeme ilmneb seetõttu, et teie masina tulemüür blokeerib mõned pordid või teenused. Kui kaugmasinasse on installitud ja töötab SSH-server, on järgmine samm tulemüüri kontrollimine.
Et välja selgitada, kas tulemüür blokeerib ühendust, keelake tulemüür ajutiselt järgmiste käskude abil:
Debiani ja Arch-põhiste Linuxi distributsioonide puhul:
sudo ufw keelata
RHEL-põhistel distributsioonidel ja openSUSE-l:
sudo systemctl keelab tulemüüri
Kui viga pärast tulemüüri keelamist ei ilmu, tähendab see, et tulemüür blokeeris ühenduse. Sel juhul lubage tulemüür uuesti ja lisage reegel, mis lubab SSH-d.
Debiani ja Arch-põhiste Linuxi distributsioonide puhul kasutage SSH-i lubamiseks järgmist käsku UFW tulemüür:
sudo ufw luba ssh
Teise võimalusena saate SSH-d lubada ka tulemüüris oleva pordi numbri järgi. Oletame, et SSH-server kasutab porti 5555, siis kasutaksite selle tulemüüris lubamiseks järgmist käsku:
sudo ufw luba 5555
Kontrollimaks, kas reegel on edukalt lisatud, kontrollige UFW olekut:
sudo ufw olek
RHEL-põhiste distributsioonide ja openSUSE puhul kasutage SSH tulemüüris lubamiseks järgmist käsku:
sudo firewall-cmd --permanent --add-service=ssh
SSH lubamiseks pordi numbri järgi kasutage järgmist käsku:
sudo firewall-cmd --permanent --add-port={port}/tcp
Port 4444 töötava SSH-serveri puhul oleks käsk järgmine:
sudo firewall-cmd --permanent --add-port=4444/tcp
Reegli eduka lisamise kontrollimiseks tulemüüris käivitage:
sudo firewall-cmd --list-all
5. IP-aadresside konfliktide lahendamine
Samuti on võimalik, et SSH-i tõrge "ühendusest keelduti", kuna SSH-serveri IP on vastuolus teise süsteemi IP-ga võrgus. See juhtub siis, kui kaks võrgusüsteemi väidavad, et neil on sama IP-aadress, mille tulemuseks on IP-konflikt.
Kontrollimaks, kas teie võrgus on IP-konflikt, kasutage arp-scan tööriista järgmiselt.
arp-scan [võrgu ID]
Kui on IP-konflikt, näete väljundis dubleerivat IP-aadressi. Allolev ekraanipilt on näide IP-konfliktist võrgus:
IP-konfliktide vältimiseks veenduge, et ühelgi seadmel ei oleks staatilisi IP-aadresse, mis kattuvad DHCP kogumi aadressidega.
Boonusnäpunäide: käivitage SSH paljusõnalises režiimis
Kui teil tekib SSH-tõrge, proovige probleemile jälile jõudmiseks käivitada ssh-käsk üksikasjalikus režiimis. SSH-i käitamiseks üksikasjalikus režiimis kasutage ssh-käsku koos -vvv valik järgmiselt:
ssh -vvv kasutajanimi@ip_aadress
Paljusõnalises režiimis näete ühenduse igas etapis silumissõnumeid, mis aitavad teil mõista, kus probleem peitub.
SSH tõrkeotsing "Ühendus tagasi lükatud" Linuxis
Kui tuvastate SSH-ühenduvusvea võimalikud põhjused ja rakendate soovitatud lahendused, saate tõrkeotsingut teha ja lahendada SSH-i tõrke "ühendusest keelduti". Lisaks nendele sammudele veenduge, et loote ühenduse õige IP-aadressiga ja kasutate õigeid sisselogimismandaate.
Kaugühenduse turvalisemaks muutmiseks saate Linuxis SSH jaoks seadistada kahefaktorilise autentimise.