HUOMAUTUS: Varmista ennen aloittamista, että laite, johon haluat muodostaa yhteyden, on online -tilassa ja virhe ei johdu siitä, että laite ei ole käytettävissä.
Ongelma 1: SSH -palvelu ei ole käynnissä
Yleinen syy SSH -yhteysvirheisiin on palvelu, joka ei toimi etäisännässä. Tämä voi johtua palvelun tahattomasta sammutuksesta tai palvelusta, joka ei käynnisty järjestelmän uudelleenkäynnistyksen jälkeen.
Tarkista järjestelmänhallinta komennolla, onko SSH -palvelu käynnissä:
sudosystemctl status sshd
Yllä olevan komennon pitäisi ilmoittaa, onko palvelu käynnissä vai ei, kuten alla olevissa kuvakaappauksissa näkyy.
Ratkaisu
Voit ratkaista SSH -ongelmat, jotka johtuvat palvelun toimimattomuudesta, käynnistä palvelu järjestelmän avulla. Jos palvelu vastaa virheisiin, tarkista lokit ja korjaa lokissa ilmoitetut ongelmat.
Tarkista palvelulokit alla olevan komennon avulla.
pito 'sshd' /missä/Hirsi/auth.logKäytä alla olevaa komentoa käynnistääksesi tai pysäyttääksesi SSH -palvelun systemd: n avulla.
sudosystemctl käynnistä sshdOngelma 2: SSH ei-standardiportissa
Toinen yleinen ongelma SSH-yhteyksien virheenkorjauksessa on epätyypillisen portin käyttö. Jos SSH toimii muussa kuin oletusportissa 22 olevassa portissa, et muodosta yhteyttä etäisäntään, ellet nimenomaisesti määritä porttia, jossa SSH toimii.
Voit tarkastella porttia, jossa SSH on käynnissä, käyttämällä työkalua, kuten netstat, kuten alla:
[satoja@centos8 ~]$sudo netstat -ptln | pito sshtcp0 00.0.0.0:560.0.0.0:*KUUNNELLA1131/sshd
tcp60 0:::56:::*KUUNNELLA1131/sshd
Yllä oleva ulostulo näyttää, millä portilla SSH -palvelu on käynnissä. Tässä tapauksessa se on portti 56.
Ratkaisu
Voit ratkaista tämän ongelman määrittämällä portin ssh -komennossa netstatin tietojen avulla seuraavasti:
sshkäyttäjätunnus@ip -p 56Ongelma 3: Toinen palvelu, joka käyttää samaa porttia
Toinen syy SSH -yhteysvirheisiin on, jos toinen palvelu tai prosessi käyttää myös samaa porttia kuin SSH -palvelu. Jos esimerkiksi SSH on nimenomaisesti määritetty toimimaan portissa 80 (kauhea idea), Apachen kaltainen palvelu saattaa käyttää samaa porttia.
Jos haluat nähdä, käyttääkö toinen prosessi samaa porttia kuin SSH, tarkista lokit komennolla:
sudojournalctl-tsshdTämän komennon pitäisi palauttaa alla olevan kaltainen virhe, joka ilmaisee, käyttääkö toinen prosessi SSH-porttia.
sshd[110611]: virhe: Sido porttiin800.0.0.0 epäonnistui: Osoite josisäänkäyttääOn hyvä varmistaa, että portin sitomisvirheen aiheuttaa toinen palvelu, ei SELinuxin kaltaiset turvatoimenpiteet.
Ratkaisu
Voit ratkaista tämän ongelman useilla tavoilla. Nämä sisältävät:
Ensimmäinen on sitoa SSH -palvelu toiseen porttiin. Voit tehdä tämän muokkaamalla SSH -määritystiedostoa. Muuta esimerkiksi portin merkintä portiksi 3009 komentojen mukaisesti:
sudo nano /jne/ssh/sshd_configPortti3009
Toinen tapa ratkaista tämä ongelma on lopettaa palvelu SSH -portin avulla. Pysäytä esimerkiksi apache -palvelu portin 80 avulla seuraavasti:
sudosystemctl stop httpdsudosystemctl poista httpd käytöstä
Ongelma 4: Palomuuri
Jos olet kokeillut kaikkia edellä mainittuja menetelmiä etkä vieläkään ole SSH -yhteyttä, voit siirtyä seuraavaan mahdolliseen ongelman syyyn: Palomuurirajoitukset. Käyttämäsi palomuurimenetelmän (UFW tai Iptables) mukaan sinun on varmistettava, että palomuuri sallii SSH -yhteydet.
Ratkaisu
Palomuurisäännöt ovat laajat ja voivat vaihdella järjestelmän kokoonpanon mukaan. En siis voi käsitellä kaikkia näkökohtia. Seuraava on kuitenkin yksinkertainen ratkaisu, jolla varmistetaan, että SSH -palvelu on sallittu UFW -palomuurissa.
sudoufw salli<ssh_port> /tcpVoit myös nollata kaikki UFW -säännöt ja aloittaa alusta. Sen avulla voit suorittaa palomuuriliitäntöjen vianmäärityksen alusta alkaen.
sudoufw nollausOngelma 5: Salasanojen kirjautuminen pois käytöstä
Joskus voit määrittää SSH: n olemaan hyväksymättä kirjautumisia salasanalla ja käyttämään vain julkisen avaimen todennusta. Tämä voi aiheuttaa ongelman, jos julkinen avain ei ole käytettävissä palvelimessa tai puuttuu yksityinen avainparisi.
Jos haluat tarkistaa, sallitaanko salasanalla kirjautuminen, siirrä ssh config seuraavasti:
[satoja@centos8]$sudo pitoSalasana Todennus/jne/ssh/sshd_config#PasswordAuthentication kyllä
Salasana TodennusJoo
# Salasanatodennus. PAM -kokoonpanostasi riippuen
# PAM -todennus, ota tämä käyttöön, mutta aseta PasswordAuthentication
Yllä oleva tulos osoittaa, että salasanalla kirjautuminen on sallittua.
Ratkaisu
Voit ratkaista yllä olevan ongelman kahdella tavalla:
Jos arvoksi on asetettu ei, muuta ensin PasswordAuthentication -arvoksi kyllä ja käynnistä ssh -palvelu uudelleen.
Toinen tapa on luoda ssh-avain-arvo-pari ja käyttää sitä kirjautumalla palvelimelle. Voit oppia luomaan ssh-avain-arvo-parin seuraavasta oppaasta.
https://linuxhint.com/find-ssh-public-key/
https://linuxhint.com/use-ssh-copy-id-command/
Johtopäätös
Tässä pikaoppaassa keskustelimme SSH -yhteysvirheiden tärkeimmistä syistä ja siitä, miten voit ratkaista ne. Vaikka tämä opas kattaa yleisiä ongelmia, saatat löytää järjestelmään liittyviä virheitä kokoonpanon ja käyttöoikeuksien perusteella.