SSH -yhteyksien virheenkorjaus

How Debug Ssh Connections



Tässä opetusohjelmassa käsitellään joitain nopeita menetelmiä ja tekniikoita, joita voit käyttää erilaisten SSH -yhteyksien diagnosointiin, myös silloin, kun et voi muodostaa yhteyttä SSH: een, todennusvirheet ja vastaavat.

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.log

Käytä alla olevaa komentoa käynnistääksesi tai pysäyttääksesi SSH -palvelun systemd: n avulla.

sudosystemctl käynnistä sshd

Ongelma 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 ssh
tcp0 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 56

Ongelma 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-tsshd

Tä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_config
Portti3009

Toinen tapa ratkaista tämä ongelma on lopettaa palvelu SSH -portin avulla. Pysäytä esimerkiksi apache -palvelu portin 80 avulla seuraavasti:

sudosystemctl stop httpd
sudosystemctl 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> /tcp

Voit myös nollata kaikki UFW -säännöt ja aloittaa alusta. Sen avulla voit suorittaa palomuuriliitäntöjen vianmäärityksen alusta alkaen.

sudoufw nollaus

Ongelma 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.