SSH on verkkoprotokolla, jonka avulla voit turvallisesti käyttää ja hallita etäjärjestelmää verkon kautta. Kun muodostat yhteyden etäkoneeseen SSH: n kautta, olet saattanut kohdata "yhteys hylätty" -virheen. Tämän ongelman kokeminen voi olla turhauttavaa, varsinkin jos olet järjestelmänvalvoja ja joudut suorittamaan joitain tehtäviä etäjärjestelmässä kiireellisesti.
Katsotaanpa joitain mahdollisia syitä SSH "yhteys hylätty" -virheen saamiseen ja menetelmiä sen ratkaisemiseksi.
1. Tarkista, onko SSH-palvelin asennettu
Yksi mahdollinen syy "yhteys hylätty" -virheeseen on se, että etäkone ei ole käynnissä SSH-palvelin. Ilman SSH-palvelinta kone ei hyväksy saapuvia SSH-yhteyksiä, etkä voi käyttää sitä etänä.
Joten aivan ensimmäinen vaihe virheen vianmäärityksessä on tarkistaa, onko etäkoneeseen asennettu SSH-palvelin. Käytä seuraavaa komentoa SSH-palvelimen asennuksen tarkistamiseen:
Debian-pohjaisissa jakeluissa:
dpkg --list | grep ssh
RHEL-pohjaisissa jakeluissa:
nam lista asennettu | grep ssh
openSUSE: ssa:
zypper haku -i | grep ssh
Arch-pohjaisissa jakeluissa:
pacman -Q | grep ssh
Jos SSH-palvelin on asennettu etäkoneeseen, näet sen tulosteessa. Muuten sinun on asenna OpenSSH-palvelin etäkoneeseen haluat käyttää SSH: n kautta. OpenSSH on avoimen lähdekoodin versio SSH-työkaluista järjestelmien etäkäyttöön ja -hallintaan.
Asenna OpenSSH-palvelin käyttämällä seuraavia komentoja:
Debian-pohjaisissa jakeluissa:
sudo apt install openssh-server
RHEL-pohjaisissa jakeluissa:
sudo yum asenna openssh-server
openSUSE: ssa:
sudo zypper asentaa openssh
Arch-pohjaisissa jakeluissa:
pacman -S openssh
2. Tarkista SSH-palvelun tila
Toinen syy "yhteys hylätty" -virheen saamiseen voi olla se, että SSH-palvelu on poistettu käytöstä tai se ei toimi etäkoneessa. Kun olet varma, että SSH-palvelin on asennettu, toinen asia, joka sinun on tarkistettava, on palvelimen tila.
sudo systemctl status sshd
Jos palvelu on käynnissä, tulos ilmaisee sen muodossa aktiivinen (juoksu). Muuten näet jotain vastaavaa ei-aktiivinen (kuollut).
Jos SSH-palvelin ei ole käynnissä, voit käynnistää sen manuaalisesti seuraavalla komennolla:
sudo systemctl start sshd
Voit myös ottaa palvelun käyttöön automaattisesti käynnistyksen yhteydessä:
sudo systemctl salli sshd
3. Tarkista SSH-portti
Oletuksena SSH-palvelin toimii portissa 22. Oletusporttia voidaan kuitenkin muuttaa. Siksi, jos saat SSH "yhteys hylätty" -virheen, se voi johtua siitä, että yrität muodostaa yhteyden SSH-palvelimeen oletusportissa 22, kun se on käynnissä jossakin eri portissa.
Sinä pystyt käytä netstat-komentoa grepillä löytääksesi portin, jota SSH-palvelin kuuntelee:
sudo netstat -plntu | grep ssh
Löydät myös SSH-portin osoitteesta sshd_config tiedosto seuraavalla komennolla:
grep-portti /etc/ssh/sshd_config
Kun olet tunnistanut oikean SSH-portin, yritä muodostaa yhteys etäjärjestelmääsi käyttämällä kyseistä porttia.
4. Tarkista järjestelmän palomuuri
Suurin osa yhteysongelmista johtuu siitä, että koneesi palomuuri estää jotkin portit tai palvelut. Jos etäkoneeseen on asennettu SSH-palvelin ja se on käynnissä, seuraava vaihe on palomuurisi tarkistaminen.
Jos haluat selvittää, estääkö palomuuri yhteyden, poista palomuuri tilapäisesti käytöstä seuraavilla komennoilla:
Debian- ja Arch-pohjaisissa Linux-jakeluissa:
sudo ufw pois käytöstä
RHEL-pohjaisissa jakeluissa ja openSUSEssa:
sudo systemctl poista palomuuri käytöstä
Jos virhe ei tule näkyviin palomuurin poistamisen jälkeen, se tarkoittaa, että palomuuri esti yhteyden. Ota tässä tapauksessa palomuuri uudelleen käyttöön ja lisää sääntö, joka sallii SSH: n.
Debian- ja Arch-pohjaisissa Linux-jakeluissa käytä seuraavaa komentoa salliaksesi SSH: n UFW-palomuuri:
sudo ufw salli ssh
Vaihtoehtoisesti voit myös sallia SSH: n palomuurin portin numeron perusteella. Oletetaan, että SSH-palvelin käyttää porttia 5555, niin käytät seuraavaa komentoa salliaksesi sen palomuurissa:
sudo ufw salli 5555
Tarkista UFW-tila, onko säännön lisäys onnistunut:
sudo ufw -tila
RHEL-pohjaisissa jakeluissa ja openSUSEssa käytä seuraavaa komentoa salliaksesi SSH palomuurissa:
sudo firewall-cmd --permanent --add-service=ssh
Salli SSH porttinumeron mukaan käyttämällä seuraavaa komentoa:
sudo firewall-cmd --permanent --add-port={portti}/tcp
SSH-palvelimelle, joka toimii portissa 4444, komento olisi:
sudo firewall-cmd --permanent --add-port=4444/tcp
Voit varmistaa säännön onnistuneen lisäyksen palomuurin suorittamalla:
sudo firewall-cmd --list-all
5. Ratkaise IP-osoiteristiriidat
On myös mahdollista, että SSH "yhteys hylätty" -virhe ilmenee, koska SSH-palvelimen IP on ristiriidassa toisen järjestelmän IP-osoitteen kanssa verkossa. Tämä tapahtuu, kun kaksi verkon järjestelmää väittävät olevan sama IP-osoite, mikä johtaa IP-ristiriita.
Varmista arp-skannaustyökalulla, onko verkossasi IP-ristiriita:
arp-scan [verkkotunnus]
Jos IP-ristiriita on, näet kaksoiskappaleen IP-osoitteen tulosteessa. Alla oleva kuvakaappaus on esimerkki IP-ristiriidistä verkossa:
IP-ristiriitojen välttämiseksi varmista, että millään laitteella ei ole staattisia IP-osoitteita, jotka ovat päällekkäisiä DHCP-pooliosoitteiden kanssa.
Bonusvinkki: Suorita SSH monisanaisessa tilassa
Aina kun kohtaat SSH-virheen, yritä jäljittää ongelma suorittamalla ssh-komento monisanaisessa tilassa. Jos haluat suorittaa SSH: n monisanaisessa tilassa, käytä ssh-komentoa -vvv vaihtoehto seuraavasti:
ssh -vvv käyttäjätunnus@ip_osoite
Monisanaisessa tilassa näet jokaisessa yhteyden vaiheessa virheenkorjausviestejä, jotka auttavat sinua ymmärtämään, missä ongelma piilee.
SSH "Yhteys hylätty" -virheen vianmääritys Linuxissa
Tunnistamalla SSH-yhteysvirheen mahdolliset syyt ja ottamalla käyttöön ehdotetut ratkaisut, voit tehdä vianmäärityksen ja ratkaista SSH: n "yhteys hylätty" -virheen. Varmista näiden vaiheiden lisäksi, että muodostat yhteyden oikeaan IP-osoitteeseen ja käytät oikeita kirjautumistietoja.
Etäyhteytesi turvallisuuden parantamiseksi voit määrittää kaksivaiheisen todennuksen SSH: lle Linuxissa.