Paano i-debug ang Mga Koneksyon sa SSH

How Debug Ssh Connections



Ang tutorial na ito ay pupunta sa ilang mga mabilis na pamamaraan at diskarte na maaari mong gamitin upang masuri ang iba't ibang mga koneksyon sa SSH, kabilang ang kung hindi ka makakonekta sa SSH, Mga error sa pagpapatotoo, at iba pa.

TANDAAN: Bago magsimula, tiyaking ang aparato na nais mong ikonekta ay online at ang error ay hindi isang resulta ng pagiging hindi magagamit ng aparato.







Isyu 1: Hindi Tumatakbo ang Serbisyo ng SSH

Ang isang karaniwang sanhi ng mga pagkakamali sa koneksyon ng SSH ay ang serbisyo na hindi tumatakbo sa remote host. Maaari itong maging sanhi ng hindi sinasadyang pag-shutdown ng serbisyo o serbisyo na hindi nagsisimula pagkatapos ng pag-reboot ng system.



Upang suriin kung tumatakbo ang serbisyo ng SSH, gamitin ang system manager gamit ang utos:



sudostatus ng systemctl sshd

Ang utos sa itaas ay dapat mag-ulat kung ang serbisyo ay tumatakbo o hindi, tulad ng ipinakita sa mga screenshot sa ibaba.







Solusyon

Upang malutas ang mga isyu sa SSH sanhi ng hindi pagpapatakbo ng serbisyo, gamitin ang system upang simulan ang serbisyo. Kung ang serbisyo ay tumutugon nang may mga pagkakamali, suriin ang mga tala at ayusin ang mga isyu na iniulat sa log.

Gamitin ang utos sa ibaba upang suriin ang mga log ng serbisyo.

mahigpit na pagkakahawak 'sshd' /kung saan/mag-log/auth.log

Gamitin ang utos sa ibaba upang simulan o ihinto ang serbisyo ng SSH gamit ang systemd.

sudosystemctl start sshd

Isyu 2: SSH sa Non-Standard Port

Ang pangalawang karaniwang isyu kapag ang pagde-debug ng mga koneksyon sa SSH ay ang paggamit ng isang hindi karaniwang port. Kung tumatakbo ang SSH sa isa pang port bukod sa default port 22, hindi ka makakonekta sa remote host maliban kung malinaw mong tinukoy ang port kung saan tumatakbo ang SSH.

Upang matingnan ang port kung saan tumatakbo ang SSH, gumamit ng tool tulad ng netstat tulad ng nasa ibaba:

[daan-daang@centos8 ~]$sudo netstat -ptln | mahigpit na pagkakahawak ssh
tcp0 00.0.0.0:560.0.0.0:*Pakinggan1131/sshd
tcp60 0:::56:::*Pakinggan1131/sshd

Ipinapakita ng output sa itaas kung aling port ang serbisyo ng SSH ay tumatakbo. Sa kasong ito, ito ay port 56.

Solusyon

Upang malutas ang isyung ito, maaari mong gamitin ang impormasyon mula sa netstat upang malinaw na tukuyin ang port sa iyong ssh command bilang:

sshusername@ip -p 56

Isyu 3: Isa pang Serbisyo gamit ang parehong port

Ang isa pang sanhi ng mga pagkakamali sa koneksyon ng SSH ay kung ang ibang serbisyo o proseso ay gumagamit din ng parehong port bilang serbisyo ng SSH. Halimbawa, kung ang SSH ay malinaw na tinukoy upang tumakbo sa port 80 (kahila-hilakbot na ideya), ang isang serbisyo tulad ng Apache ay maaaring gumagamit ng parehong port.

Upang matingnan kung ang isa pang proseso ay gumagamit ng parehong port tulad ng SSH, suriin ang mga log gamit ang utos:

sudojournalctl-tsshd

Ang utos na ito ay dapat na magbalik ng isang error tulad ng ipinakita sa ibaba, na nagpapahiwatig kung ang ibang proseso ay gumagamit ng SSH-bound port.

sshd[110611]: error: Bind to port80nabigo sa 0.0.0.0: Address nasagamitin

Mahusay na matiyak na ang pagkakamali sa pag-uugnay sa port ay sanhi ng ibang serbisyo, hindi mga panukala sa seguridad tulad ng SELinux.

Solusyon

Mayroong iba't ibang mga paraan na maaari mong gamitin upang malutas ang isyung ito. Kabilang dito ang:

Ang una ay upang maiugnay ang serbisyo ng SSH sa ibang port. Magagawa mo ito sa pamamagitan ng pag-edit ng SSH config file. Halimbawa, baguhin ang pagpasok ng Port sa port 3009 tulad ng ipinakita sa mga utos:

sudo nano /atbp/ssh/sshd_config
Port3009

Ang isa pang pamamaraan na maaari mong gamitin upang malutas ang isyung ito ay upang ihinto ang serbisyo gamit ang SSH port. Halimbawa, itigil ang serbisyo ng apache gamit ang port 80 bilang:

sudoihinto ang systemctl httpd
sudohindi paganahin ng systemctl ang httpd

Isyu 4: Firewall

Kung sinubukan mo ang lahat ng mga pamamaraan sa itaas at wala pa ring koneksyon sa SSH, maaari kang magpatuloy sa susunod na posibleng sanhi ng isyu: Mga paghihigpit sa Firewall. Nakasalalay sa paraan ng Firewall na iyong ginagamit (UFW o Iptables), kailangan mong tiyakin na pinapayagan ng firewall ang mga koneksyon sa SSH.

Solusyon

Ang mga patakaran ng Firewall ay malawak at maaaring mag-iba depende sa pagsasaayos ng system. Sa gayon, hindi ko masasaklaw ang bawat aspeto. Gayunpaman, ang sumusunod ay isang simpleng solusyon upang matiyak na ang serbisyo ng SSH ay pinapayagan sa UFW Firewall.

sudopayw payagan<ssh_port> /tcp

Maaari mo ring i-reset ang lahat ng mga panuntunan sa UFW at magsimula muli. Papayagan ka nitong i-troubleshoot ang mga koneksyon sa firewall mula sa simula.

sudoufw reset

Isyu 5: Mga Pag-login sa Password na Hindi pinagana

Minsan maaari mong i-configure ang SSH na huwag tanggapin ang mga pag-login sa password at gagamitin lamang ang pampublikong-key na pagpapatotoo. Maaari itong maging sanhi ng isang isyu kung ang pampublikong key ay hindi magagamit sa server o nawawala ang iyong pribadong key pares.

Upang suriin kung pinapayagan ang mga pag-login sa password, cat ang ssh config bilang:

[daan-daang@centos8]$sudo mahigpit na pagkakahawakPagpapatotoo ng Password/atbp/ssh/sshd_config
#PasswordAuthentication oo
Pagpapatotoo ng Passwordoo
# PasswordAuthentication. Nakasalalay sa iyong pagsasaayos ng PAM,
# Pagpapatotoo ng PAM, pagkatapos ay paganahin ito ngunit itakda ang PasswordAuthentication

Ipinapakita ng output sa itaas na pinapayagan ang mga pag-login sa password.

Solusyon

Upang malutas ang isyu sa itaas, maaari kang gumamit ng dalawang pamamaraan:

Una, kung nakatakda ang halaga sa hindi, palitan ang halaga ng PasswordAuthentication sa oo at i-restart ang serbisyo ssh.

Ang iba pang pamamaraan ay upang lumikha ng isang ssh key-halaga na pares at gamitin ito upang mag-log in sa server. Upang malaman kung paano lumikha ng pares ng ssh key-halaga, gamitin ang sumusunod na gabay.

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

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

Konklusyon

Sa mabilisang gabay na ito, tinalakay namin ang mga pangunahing sanhi ng mga error sa koneksyon ng SSH at kung paano mo malulutas ang mga ito. Bagaman sumasaklaw ang gabay na ito ng mga karaniwang isyu, maaari kang makahanap ng mga error na tukoy sa iyong system batay sa pagsasaayos at mga pahintulot.