Kaip derinti SSH ryšius

How Debug Ssh Connections



Šioje pamokoje apžvelgiami keli greiti metodai ir būdai, kuriuos galite naudoti diagnozuodami įvairius SSH ryšius, įskaitant atvejus, kai negalite prisijungti prie SSH, autentifikavimo klaidos ir pan.

PASTABA: Prieš pradėdami įsitikinkite, kad įrenginys, prie kurio norite prisijungti, yra prisijungęs ir klaida atsirado ne dėl to, kad įrenginys buvo nepasiekiamas.







1 problema: SSH paslauga neveikia

Dažna SSH ryšio klaidų priežastis yra tai, kad paslauga neveikia nuotoliniame priegloboje. Taip gali būti dėl atsitiktinio paslaugos išjungimo arba paslaugos nepradėjimo paleidus sistemą iš naujo.



Norėdami patikrinti, ar SSH paslauga veikia, naudokite sistemos tvarkyklę naudodami komandą:



sudosystemctl status sshd

Aukščiau pateikta komanda turėtų pranešti, ar paslauga veikia, ar ne, kaip parodyta žemiau esančiose ekrano kopijose.







Sprendimas

Norėdami išspręsti SSH problemas, kurias sukelia paslauga, kuri neveikia, naudokite sistemą, kad paleistumėte paslaugą. Jei paslauga reaguoja su klaidomis, patikrinkite žurnalus ir išspręskite žurnale nurodytas problemas.

Norėdami patikrinti paslaugų žurnalus, naudokite žemiau esančią komandą.

sukibimas 'sshd' /kur/žurnalą/auth.log

Naudokite toliau pateiktą komandą, kad paleistumėte arba sustabdytumėte SSH paslaugą naudodami systemd.

sudosystemctl start sshd

2 problema: SSH nestandartiniame prievade

Antroji dažna SSH jungčių derinimo problema yra nestandartinio prievado naudojimas. Jei SSH veikia kitame nei numatytasis 22 prievadas, neprisijungsite prie nuotolinio pagrindinio kompiuterio, nebent aiškiai nurodysite prievadą, kuriame veikia SSH.

Norėdami peržiūrėti prievadą, kuriame veikia SSH, naudokite tokį įrankį kaip „netstat“, kaip nurodyta toliau:

[šimtai@centos8 ~]$sudo netstat -ptln | sukibimas ssh
tcp0 00.0.0.0:560.0.0.0:*KLAUSYTI1131/sshd
tcp60 0:::56:::*KLAUSYTI1131/sshd

Aukščiau pateikta išvestis rodo, kuriame prievade veikia SSH paslauga. Šiuo atveju tai yra 56 prievadas.

Sprendimas

Norėdami išspręsti šią problemą, galite naudoti informaciją iš „netstat“, kad aiškiai nurodytumėte savo ssh komandos prievadą kaip:

sshVartotojo vardas@ip -p 56

3 problema: kita paslauga, naudojant tą patį prievadą

Kita SSH ryšio klaidų priežastis yra ta, kad kita paslauga ar procesas taip pat naudoja tą patį prievadą kaip SSH paslauga. Pavyzdžiui, jei SSH yra aiškiai nurodyta veikti 80 prievade (baisi idėja), tokia paslauga kaip „Apache“ gali naudoti tą patį prievadą.

Norėdami pamatyti, ar kitas procesas naudoja tą patį prievadą kaip SSH, patikrinkite žurnalus naudodami komandą:

sudojournalctl-tsshd

Ši komanda turėtų grąžinti klaidą, panašią į žemiau pateiktą, nurodydama, ar kitas procesas naudoja SSH susietą prievadą.

sshd[110611]: klaida: susieti su prievadu800.0.0.0 nepavyko: adresas jau yraįnaudoti

Gera užtikrinti, kad prievado įrišimo klaidą sukeltų kita paslauga, o ne saugumo priemonės, tokios kaip „SELinux“.

Sprendimas

Galite išspręsti šią problemą įvairiais būdais. Jie apima:

Pirmasis yra susieti SSH paslaugą su kitu prievadu. Tai galite padaryti redaguodami SSH konfigūracijos failą. Pavyzdžiui, pakeiskite prievado įrašą į prievadą 3009, kaip parodyta komandose:

sudo nano /ir kt/ssh/sshd_config
Uostas3009

Kitas būdas išspręsti šią problemą yra sustabdyti paslaugą naudojant SSH prievadą. Pavyzdžiui, sustabdykite „apache“ paslaugą naudodami 80 prievadą kaip:

sudosystemctl sustabdyti httpd
sudosystemctl išjungti httpd

4 problema: užkarda

Jei išbandėte visus aukščiau išvardintus metodus ir vis tiek neturite SSH ryšio, galite pereiti prie kitos galimos problemos priežasties: ugniasienės apribojimai. Priklausomai nuo naudojamo užkardos metodo (UFW arba „Iptables“), turite užtikrinti, kad ugniasienė leistų SSH ryšius.

Sprendimas

Ugniasienės taisyklės yra plačios ir gali skirtis priklausomai nuo sistemos konfigūracijos. Taigi negaliu apimti visų aspektų. Tačiau toliau pateikiamas paprastas sprendimas, užtikrinantis, kad SSH paslauga būtų leidžiama UFW užkardoje.

sudoufw leisti<ssh_port> /tcp

Taip pat galite iš naujo nustatyti visas UFW taisykles ir pradėti iš naujo. Tai leis jums pašalinti ugniasienės ryšių problemas nuo nulio.

sudoufw atstatymas

5 problema: slaptažodžių prisijungimas išjungtas

Kartais galite sukonfigūruoti SSH, kad jis nepriimtų prisijungimo prie slaptažodžių ir naudotų tik autentifikavimą viešuoju raktu. Tai gali sukelti problemų, jei viešasis raktas nėra prieinamas serveryje arba trūksta jūsų asmeninio rakto poros.

Jei norite patikrinti, ar leidžiami prisijungimo slaptažodžiai, nurodykite ssh config kaip:

[šimtai@centos8]$sudo sukibimasSlaptažodžio autentifikavimas/ir kt/ssh/sshd_config
#PasswordAuthentication taip
Slaptažodžio autentifikavimastaip
# Slaptažodžio autentifikavimas. Priklausomai nuo jūsų PAM konfigūracijos,
# PAM autentifikavimas, tada įjunkite tai, bet nustatykite „PasswordAuthentication“

Aukščiau pateikta informacija rodo, kad slaptažodžio prisijungimas yra leidžiamas.

Sprendimas

Norėdami išspręsti pirmiau nurodytą problemą, galite naudoti du metodus:

Pirma, jei nustatyta reikšmė „ne“, pakeiskite „PasswordAuthentication“ reikšmę į „taip“ ir iš naujo paleiskite „ssh“ paslaugą.

Kitas būdas yra sukurti ssh rakto ir vertės porą ir ją naudoti prisijungiant prie serverio. Norėdami sužinoti, kaip sukurti ssh rakto ir vertės porą, naudokite šį vadovą.

https://linuxhint.com/find-ssh-public-key/

https://linuxhint.com/use-ssh-copy-id-command/

Išvada

Šiame trumpame vadove aptarėme pagrindines SSH ryšio klaidų priežastis ir kaip jas išspręsti. Nors šiame vadove aptariamos įprastos problemos, galite rasti konkrečiai sistemai būdingų klaidų pagal konfigūraciją ir leidimus.