SSH je sieťový protokol, ktorý vám umožňuje bezpečne pristupovať a spravovať vzdialený systém cez sieť. Pri pripájaní k vzdialenému počítaču cez SSH ste mohli naraziť na chybu „pripojenie odmietnuté“. Zažiť tento problém môže byť frustrujúce, najmä ak ste správcom systému a musíte urgentne vykonávať niektoré úlohy na vzdialenom systéme.
Pozrime sa na niektoré z možných príčin chyby „pripojenie odmietnuté“ SSH a spôsoby, ako ju vyriešiť.
1. Skontrolujte, či je nainštalovaný server SSH
Jednou z možných príčin chyby „pripojenie odmietnuté“ je, že vzdialený počítač nebeží server SSH. Bez servera SSH nebude zariadenie akceptovať prichádzajúce pripojenia SSH a nebudete k nemu môcť pristupovať na diaľku.
Prvým krokom pri riešení chyby je teda skontrolovať, či je na vzdialenom počítači nainštalovaný server SSH. Na overenie inštalácie servera SSH použite nasledujúci príkaz:
V distribúciách založených na Debiane:
dpkg --zoznam | grep ssh
V distribúciách založených na RHEL:
yum zoznam nainštalovaný | grep ssh
Na openSUSE:
hľadať zypper -i | grep ssh
Na distribúciách založených na Arch:
pacman -Q | grep ssh
Ak je server SSH nainštalovaný na vzdialenom počítači, uvidíte ho uvedený vo výstupe. V opačnom prípade musíte nainštalujte server OpenSSH na vzdialený počítač chcete pristupovať cez SSH. OpenSSH je open-source verzia nástrojov SSH na vzdialený prístup a ovládanie systémov.
Ak chcete nainštalovať server OpenSSH, použite nasledujúce príkazy:
V distribúciách založených na Debiane:
sudo apt install openssh-server
V distribúciách založených na RHEL:
sudo yum nainštalujte openssh-server
Na openSUSE:
sudo zypper nainštalujte openssh
Na distribúciách založených na Arch:
pacman -S openssh
2. Skontrolujte stav služby SSH
Ďalším dôvodom pre získanie chyby "pripojenie odmietnuté" môže byť, že služba SSH je zakázaná alebo nie je spustená na vzdialenom počítači. Keď ste si istí, že server SSH je nainštalovaný, druhá vec, ktorú musíte skontrolovať, je stav servera.
sudo systemctl stav sshd
Ak je služba v prevádzke, na výstupe sa zobrazí ako aktívny (beh). V opačnom prípade uvidíte niečo podobné neaktívny (mŕtvy).
Ak server SSH nebeží, môžete ho spustiť manuálne pomocou nasledujúceho príkazu:
sudo systemctl spustiť sshd
Môžete tiež povoliť automatické spustenie služby pri zavádzaní pomocou:
sudo systemctl povoliť sshd
3. Skontrolujte port SSH
Server SSH štandardne beží na porte 22. Predvolený port je však možné zmeniť. Ak sa vám teda zobrazí chyba SSH „pripojenie odmietnuté“, môže to byť spôsobené tým, že sa pokúšate pripojiť k serveru SSH na predvolenom porte 22, zatiaľ čo je spustený na inom porte.
Môžeš použite príkaz netstat pomocou grep nájdite port, na ktorom SSH server počúva:
sudo netstat -plntu | grep ssh
Port SSH môžete tiež nájsť z sshd_config súbor pomocou nasledujúceho príkazu:
grep port /etc/ssh/sshd_config
Po identifikácii správneho portu SSH sa pokúste pripojiť k vzdialenému systému pomocou tohto špecifického portu.
4. Skontrolujte bránu firewall systému
Väčšina problémov s pripojením sa vyskytuje v dôsledku toho, že brána firewall vášho počítača blokuje niektoré porty alebo služby. Ak má vzdialený počítač nainštalovaný a spustený server SSH, ďalším krokom je kontrola brány firewall.
Ak chcete zistiť, či brána firewall blokuje pripojenie, dočasne ju vypnite pomocou nasledujúcich príkazov:
Na distribúciách Debian a Linux založených na Arch:
sudo ufw zakázať
Na distribúciách založených na RHEL a openSUSE:
sudo systemctl zakázať firewalld
Ak sa chyba nezobrazí ani po vypnutí brány firewall, znamená to, že brána firewall blokovala pripojenie. V takom prípade znova povoľte bránu firewall a pridajte pravidlo, ktoré povoľuje SSH.
V distribúciách Debian a Linux založených na Arch použite nasledujúci príkaz na povolenie vstupu SSH firewall UFW:
sudo ufw povoliť ssh
Prípadne môžete povoliť SSH aj podľa čísla portu vo firewalle. Povedzme, že server SSH používa port 5555, potom by ste ho povolili v bráne firewall pomocou nasledujúceho príkazu:
sudo ufw povoliť 5555
Ak chcete overiť, či bolo pravidlo úspešne pridané, skontrolujte stav UFW:
stav sudo ufw
V distribúciách založených na RHEL a openSUSE použite nasledujúci príkaz na povolenie SSH vo bráne firewall:
sudo firewall-cmd --permanent --add-service=ssh
Ak chcete povoliť SSH podľa čísla portu, použite nasledujúci príkaz:
sudo firewall-cmd --permanent --add-port={port}/tcp
Pre server SSH spustený na porte 4444 by príkaz bol:
sudo firewall-cmd --permanent --add-port=4444/tcp
Ak chcete overiť úspešné pridanie pravidla do brány firewall, spustite:
sudo firewall-cmd --list-all
5. Vyriešte konflikty IP adries
Existuje tiež možnosť, že sa vyskytne chyba „pripojenie odmietnuté“ SSH v dôsledku konfliktu IP servera SSH s IP iného systému v sieti. Stáva sa to, keď dva systémy v sieti tvrdia, že majú rovnakú IP adresu, čo má za následok konflikt IP.
Ak chcete potvrdiť, či je vo vašej sieti konflikt IP, použite nástroj arp-scan nasledovne:
arp-scan [id-siete]
Ak dôjde ku konfliktu IP, vo výstupe uvidíte duplicitnú IP adresu. Nižšie uvedená snímka obrazovky je príkladom konfliktu IP v sieti:
Aby ste predišli konfliktom IP, uistite sa, že žiadne zariadenia nemajú statické adresy IP, ktoré sa prekrývajú s adresami oblasti DHCP.
Bonusový tip: Spustite SSH v podrobnom režime
Vždy, keď narazíte na chybu SSH, skúste spustiť príkaz ssh v podrobnom režime, aby ste problém našli. Ak chcete spustiť SSH v podrobnom režime, použite príkaz ssh s príponou -vvv možnosť takto:
ssh -vvv username@ip_address
V podrobnom režime uvidíte v každom kroku pripojenia ladiace správy, ktoré vám pomôžu pochopiť, kde je problém.
Riešenie problémov s chybou SSH „Pripojenie odmietnuté“ v systéme Linux
Identifikáciou možných príčin chyby pripojenia SSH a implementáciou navrhovaných riešení budete môcť riešiť a vyriešiť chybu SSH „pripojenie odmietnuté“. Okrem týchto krokov sa uistite, že sa pripájate k správnej IP adrese a používate správne prihlasovacie údaje.
Aby bolo vaše vzdialené pripojenie bezpečnejšie, môžete v systéme Linux nastaviť dvojfaktorové overenie pre SSH.