Jak ladit připojení SSH

How Debug Ssh Connections



Tento tutoriál projde některými rychlými metodami a technikami, které můžete použít k diagnostice různých připojení SSH, včetně případů, kdy se nemůžete připojit k SSH, chybám ověřování a podobně.

POZNÁMKA: Než začnete, ujistěte se, že zařízení, ke kterému se chcete připojit, je online a chyba není důsledkem nedostupnosti zařízení.







Problém 1: Služba SSH není spuštěna

Běžnou příčinou chyb připojení SSH je služba, která není spuštěna na vzdáleném hostiteli. Příčinou může být nechtěné vypnutí služby nebo spuštění služby po restartu systému.



Chcete -li zkontrolovat, zda je služba SSH spuštěna, použijte správce systému pomocí příkazu:



sudosystemctl status sshd

Výše uvedený příkaz by měl hlásit, zda je služba spuštěna nebo ne, jak je znázorněno na níže uvedených screenshotech.







Řešení

Chcete -li vyřešit problémy s SSH způsobené službou, která není spuštěna, spusťte službu pomocí systému. Pokud služba odpoví chybami, zkontrolujte protokoly a opravte problémy uvedené v protokolu.

Pomocí níže uvedeného příkazu zkontrolujte protokoly služeb.

rukojeť 'sshd' /kde/log/autorizační protokol

Pomocí níže uvedeného příkazu spustíte nebo zastavíte službu SSH pomocí systemd.

sudosystemctl start sshd

Problém 2: SSH na nestandardním portu

Druhým běžným problémem při ladění připojení SSH je použití nestandardního portu. Pokud SSH běží na jiném portu, než je výchozí port 22, nepřipojíte se ke vzdálenému hostiteli, pokud výslovně neurčíte port, na kterém je SSH spuštěno.

Chcete -li zobrazit port, na kterém běží SSH, použijte nástroj, jako je netstat, jak je uvedeno níže:

[stovky@centos8 ~]$sudo netstat -ptln | rukojeť ssh
tcp0 00,0.0,0:560,0.0,0:*POSLOUCHAT1131/sshd
tcp60 0:::56:::*POSLOUCHAT1131/sshd

Výše uvedený výstup ukazuje, na kterém portu je služba SSH spuštěna. V tomto případě je to port 56.

Řešení

Chcete -li tento problém vyřešit, můžete použít informace z netstatu a explicitně zadat port v příkazu ssh jako:

sshuživatelské jméno@ip -p 56

Problém 3: Další služba používající stejný port

Další příčinou chyb připojení SSH je to, že stejný port jako služba SSH používá také jiná služba nebo proces. Pokud je například SSH výslovně určeno pro spuštění na portu 80 (hrozný nápad), služba jako Apache může používat stejný port.

Chcete -li zjistit, zda jiný proces používá stejný port jako SSH, zkontrolujte protokoly pomocí příkazu:

sudojournalctl-tsshd

Tento příkaz by měl vrátit chybu podobnou té, která je uvedena níže, což naznačuje, zda jiný proces používá port vázaný na SSH.

sshd[110611]: chyba: Vázat na port80dne 0.0.0.0 se nezdařilo: Adresa jižvpoužití

Je dobré zajistit, aby chyba vazby portu byla způsobena jinou službou, nikoli bezpečnostními opatřeními, jako je SELinux.

Řešení

K vyřešení tohoto problému můžete použít různé způsoby. Tyto zahrnují:

První je svázat službu SSH s jiným portem. To lze provést úpravou konfiguračního souboru SSH. Například změňte položku Port na port 3009, jak je uvedeno v příkazech:

sudo nano /atd/ssh/sshd_config
Přístav3009

Další metodou, kterou můžete použít k vyřešení tohoto problému, je zastavit službu pomocí portu SSH. Zastavte například službu apache pomocí portu 80 jako:

sudosystemctl stop httpd
sudosystemctl zakázat httpd

Problém 4: Firewall

Pokud jste vyzkoušeli všechny výše uvedené metody a stále nemáte připojení SSH, můžete přejít k další možné příčině problému: omezení brány firewall. V závislosti na metodě brány firewall, kterou používáte (UFW nebo Iptables), musíte zajistit, aby brána firewall umožňovala připojení SSH.

Řešení

Pravidla brány firewall jsou široká a mohou se lišit v závislosti na konfiguraci systému. Nemohu tedy pokrýt všechny aspekty. Následuje však jednoduché řešení, jak zajistit, aby služba SSH byla povolena v bráně firewall UFW.

sudoufw povolit<ssh_port> /tcp

Můžete také resetovat všechna pravidla UFW a začít znovu. To vám umožní odstraňovat problémy s připojením brány firewall od začátku.

sudoufw reset

Problém 5: Zakázané přihlašování pomocí hesla

Někdy můžete SSH nakonfigurovat tak, aby nepřijímal přihlášení pomocí hesla a používal pouze ověřování pomocí veřejného klíče. To může způsobit problém, pokud veřejný klíč není k dispozici na serveru nebo chybí váš pár soukromých klíčů.

Chcete -li zkontrolovat, zda jsou povolena přihlášení pomocí hesla, proveďte konfiguraci ssh jako:

[stovky@centos8]$sudo rukojeťOvěření hesla/atd/ssh/sshd_config
#PasswordAuthentication ano
Ověření heslaAno
# Ověření hesla. V závislosti na konfiguraci PAM
# Ověření PAM, poté povolte, ale nastavte PasswordAuthentication

Výše uvedený výstup ukazuje, že je povoleno přihlášení pomocí hesla.

Řešení

K vyřešení výše uvedeného problému můžete použít dvě metody:

Nejprve, pokud máte hodnotu nastavenou na ne, změňte hodnotu PasswordAuthentication na yes a restartujte službu ssh.

Druhou metodou je vytvořit pár klíč-hodnota ssh a použít jej k přihlášení na server. Chcete-li se dozvědět, jak vytvořit pár klíč-hodnota ssh, použijte následující průvodce.

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

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

Závěr

V této rychlé příručce jsme diskutovali o hlavních příčinách chyb připojení SSH a o tom, jak je lze vyřešit. Přestože se tato příručka zabývá běžnými problémy, na základě konfigurace a oprávnění můžete najít chyby specifické pro váš systém.