Kako odpraviti napake povezav SSH

How Debug Ssh Connections



Ta vadnica bo obravnavala nekaj hitrih metod in tehnik, ki jih lahko uporabite za diagnosticiranje različnih povezav SSH, tudi kadar se ne morete povezati s SSH, napake pri preverjanju pristnosti itd.

OPOMBA: Preden začnete, se prepričajte, da je naprava, s katero se želite povezati, in da napaka ni posledica tega, da naprava ni na voljo.







1. težava: storitev SSH se ne izvaja

Pogost vzrok napak pri povezavi SSH je storitev, ki se ne izvaja na oddaljenem gostitelju. To je lahko posledica nenamernega izklopa storitve ali ne zagona storitve po ponovnem zagonu sistema.



Če želite preveriti, ali se storitev SSH izvaja, uporabite upravitelja sistema z ukazom:



sudosystemctl status sshd

Zgornji ukaz bi moral poročati, ali storitev deluje ali ne, kot je prikazano na spodnjih posnetkih zaslona.







Rešitev

Če želite odpraviti težave s protokolom SSH, ki jih povzroča storitev, ki se ne izvaja, zaženite storitev s sistemom. Če se storitev odzove z napakami, preverite dnevnike in odpravite težave, prijavljene v dnevniku.

S spodnjim ukazom preverite dnevnike storitev.

oprijem 'sshd' /kje/dnevnik/auth.log

S spodnjim ukazom zaženite ali ustavite storitev SSH z uporabo systemd.

sudosystemctl zaženi sshd

2. vprašanje: SSH na nestandardnih vratih

Druga pogosta težava pri odpravljanju napak povezav SSH je uporaba nestandardnih vrat. Če SSH deluje na drugih vratih, ki niso privzeta 22, se ne boste povezali z oddaljenim gostiteljem, razen če izrecno navedete vrata, na katerih se izvaja SSH.

Če si želite ogledati vrata, na katerih deluje SSH, uporabite spodnje orodje, kot je netstat:

[stotine@centos8 ~]$sudo netstat -ptln | oprijem ssh
tcp0 00,0,0,0:560,0,0,0:*POSLUŠAJTE1131/sshd
tcp60 0:::56:::*POSLUŠAJTE1131/sshd

Zgornji izhod prikazuje, na katerih vratih deluje storitev SSH. V tem primeru gre za vrata 56.

Rešitev

Če želite odpraviti to težavo, lahko z informacijami iz netstat izrecno določite vrata v ukazu ssh kot:

sshuporabniško ime@ip -str 56

3. težava: Druga storitev, ki uporablja ista vrata

Drug vzrok za napake pri povezavi SSH je, če druga storitev ali proces uporablja tudi ista vrata kot storitev SSH. Če je na primer SSH izrecno določen za izvajanje na vratih 80 (grozna ideja), lahko storitev, kot je Apache, uporablja ista vrata.

Če si želite ogledati, ali drug proces uporablja ista vrata kot SSH, preverite dnevnike z ukazom:

sudojournalctl-tsshd

Ta ukaz bi moral vrniti napako, kot je prikazana spodaj, ki označuje, ali drug proces uporablja vrata, vezana na SSH.

sshd[110611]: error: Poveži se z vrati80na 0.0.0.0 ni uspelo: naslov ževuporaba

Dobro je zagotoviti, da napako pri vezavi vrat povzroči druga storitev, ne pa varnostni ukrepi, kot je SELinux.

Rešitev

Za rešitev te težave lahko uporabite različne načine. Tej vključujejo:

Prvi je, da storitev SSH povežete z drugimi vrati. To lahko storite tako, da uredite konfiguracijsko datoteko SSH. Na primer, spremenite vnos vrat v vrata 3009, kot je prikazano v ukazih:

sudo nano /itd/ssh/sshd_config
Pristanišče3009

Drug način, s katerim lahko odpravite to težavo, je ustavitev storitve prek vrat SSH. Na primer, ustavite storitev apache z vrati 80 kot:

sudosystemctl ustavi httpd
sudosystemctl onemogoči httpd

4. vprašanje: Požarni zid

Če ste preizkusili vse zgornje metode in še vedno nimate povezave SSH, lahko preidete na naslednji možni vzrok težave: omejitve požarnega zidu. Odvisno od metode požarnega zidu, ki ga uporabljate (UFW ali Iptables), morate zagotoviti, da požarni zid dovoljuje povezave SSH.

Rešitev

Pravila požarnega zidu so široka in se lahko razlikujejo glede na konfiguracijo sistema. Tako ne morem zajeti vseh vidikov. Spodaj pa je preprosta rešitev za zagotovitev, da je storitev SSH dovoljena v požarnem zidu UFW.

sudoufw dovoli<ssh_port> /tcp

Prav tako lahko ponastavite vsa pravila UFW in začnete znova. To vam bo omogočilo, da od začetka odpravite težave s požarnim zidom.

sudoufw ponastavitev

5. vprašanje: onemogočeni vnosi gesla

Včasih lahko konfigurirate SSH, da ne sprejema prijav za gesla in uporablja samo preverjanje pristnosti z javnim ključem. To lahko povzroči težavo, če javni ključ ni na voljo na strežniku ali manjka vaš par zasebnih ključev.

Če želite preveriti, ali so prijave z geslom dovoljene, označite konfiguracijo ssh kot:

[stotine@centos8]$sudo oprijemPreverjanje gesla/itd/ssh/sshd_config
#PasswordAuthentication ja
Preverjanje geslaja
# Preverjanje gesla. Odvisno od konfiguracije PAM,
# PAM overjanje, nato omogočite to, vendar nastavite PasswordAuthentication

Zgornji izhod kaže, da so prijave z geslom dovoljene.

Rešitev

Zgornjo težavo lahko odpravite na dva načina:

Najprej, če imate vrednost nastavljeno na ne, spremenite vrednost PasswordAuthentication na da in znova zaženite storitev ssh.

Druga metoda je ustvariti par ključ-vrednost ssh in se z njim prijaviti v strežnik. Če želite izvedeti, kako ustvariti par ključ-vrednost ssh, uporabite naslednji vodnik.

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

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

Zaključek

V tem kratkem priročniku smo razpravljali o glavnih vzrokih napak pri povezavi SSH in kako jih lahko odpravite. Čeprav ta priročnik zajema pogoste težave, lahko na podlagi konfiguracije in dovoljenj najdete napake, značilne za vaš sistem.