Úvod
Máte problémy s přístupem ke vzdálenému serveru přes SSH? Pokud SSH odpoví zprávou „Připojení odmítnuto“, možná budete muset upravit požadavek nebo zkontrolovat nastavení.
V tomto tutoriálu najdete nejčastější důvody chyby odmítnutí připojení SSH.
Proč je připojení odmítnuto, když jsem SSH?
Existuje mnoho důvodů, proč se vám může zobrazit „Připojení odmítnuto " chyba při pokusu o připojení SSH na váš server. Chcete-li tento problém vyřešit, musíte nejprve zjistit, proč systém odmítl vaše připojení přes SSH.
Níže naleznete některé z nejčastějších důvodů, které mohou způsobit odmítnutí připojení SSH.
Klient SSH není nainstalován
Před odstraňováním dalších problémů je prvním krokem zkontrolovat, zda máte správně nainstalováno SSH. Počítač, ze kterého k serveru přistupujete, by měl mít nastaveného klienta SSH. Bez správného nastavení klienta se nemůžete připojit k serveru.
Chcete-li zkontrolovat, zda máte ve svém systému klienta SSH, zadejte do okna terminálu následující:
ssh
Pokud terminál poskytuje seznam ssh
možnosti příkazu, je v systému nainstalován klient SSH. Pokud však odpoví příkaz nenalezen , musíte nainstalovat klienta OpenSSH.
Řešení:Nainstalujte klienta SSH
Chcete-li nainstalovat klienta SSH na váš počítač, otevřete terminál a spusťte jeden z níže uvedených příkazů.
Pro systémy Ubuntu/Debian:
sudo apt install openssh-client
Pro systémy CentOS/RHEL:
sudo yum install openssh-client
Démon SSH není nainstalován na serveru
Stejně jako potřebujete klientskou verzi SSH pro přístup ke vzdálenému serveru, potřebujete verzi serveru pro naslouchání a přijímání připojení. Server proto může odmítnout příchozí spojení, pokud chybí server SSH nebo nastavení není platné.
Chcete-li zkontrolovat, zda je na vzdáleném serveru dostupné SSH, spusťte příkaz:
ssh localhost
Pokud výstup odpoví „Připojení odmítnuto ", přejděte k instalaci SSH na server.
Řešení:Nainstalujte SSH na vzdálený server
Chcete-li vyřešit problém s chybějícím serverem SSH, přečtěte si, jak nainstalovat server OpenSSH.
Přihlašovací údaje jsou nesprávné
Překlepy nebo nesprávné přihlašovací údaje jsou běžnými důvody odmítnutí připojení SSH. Ujistěte se, že uživatelské jméno nezadáváte špatně nebo heslo .
Poté zkontrolujte, zda používáte správnou IP adresu serveru.
Nakonec ověřte, že máte správný port SSH OTEVŘENO. Můžete to zkontrolovat spuštěním:
grep Port /etc/ssh/sshd_config
Výstup zobrazuje číslo portu, jako na obrázku níže.
Služba SSH nefunguje
Služba SSH musí být povolena a spuštěna na pozadí. Pokud je služba mimo provoz, démon SSH nemůže přijímat připojení.
Chcete-li zkontrolovat stav služby, zadejte tento příkaz:
sudo service ssh status
Výstup by měl odpovědět, že služba je aktivní. Pokud terminál odpoví, že služba nefunguje, povolte ji, aby se problém vyřešil.
Řešení:Povolte službu SSH
Pokud systém ukazuje, že démon SSH není aktivní, můžete službu spustit spuštěním:
systemctl start sshd
Chcete-li povolit spuštění služby při spouštění, spusťte příkaz:
sudo systemctl enable sshd
Firewall brání připojení SSH
SSH může odmítnout připojení kvůli omezením brány firewall. Brána firewall chrání server před potenciálně škodlivými připojeními. Pokud však máte v systému nastaveno SSH, musíte nakonfigurovat bránu firewall tak, aby umožňovala připojení SSH.
Ujistěte se, že brána firewall neblokuje připojení SSH, protože to může způsobit „připojení odmítnuto "chyba."
Řešení:Povolte připojení SSH přes bránu firewall
K vyřešení problému, který jsme zmínili výše, můžete použít ufw (Uncomplicated Firewall), nástroj rozhraní příkazového řádku pro správu konfigurace brány firewall.
Chcete-li povolit připojení SSH, zadejte do okna terminálu následující příkaz:
sudo ufw allow ssh
Port SSH je uzavřen
Když se pokusíte o připojení ke vzdálenému serveru, SSH odešle požadavek na konkrétní port. K přijetí tohoto požadavku musí mít server otevřený port SSH.
Pokud je port uzavřen, server odmítne připojení.
Ve výchozím nastavení používá SSH port 22. Pokud jste na portu neprovedli žádné konfigurační změny, můžete zkontrolovat, zda server naslouchá příchozím požadavkům.
Chcete-li zobrazit seznam všech portů, které naslouchají, spusťte:
sudo lsof -i -n -P | grep LISTEN
Najděte port 22 ve výstupu a zkontrolujte, zda je STATE je nastaveno na POSLOUCHAT .
Případně můžete zkontrolovat, zda je otevřený konkrétní port, v tomto případě port 22:
sudo lsof -i:22
Řešení:Otevřete port SSH
Chcete-li povolit portu 22 pro POSLECHNUTÍ požadavků, použijte iptables
příkaz:
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Porty můžete otevřít také prostřednictvím GUI změnou nastavení brány firewall.
Ladění a protokolování SSH
Chcete-li analyzovat problémy SSH v Linuxu, můžete zapnout podrobný režim nebo ladění režimu . Když povolíte tento režim, SSH vytiskne ladicí zprávy, které pomáhají odstraňovat problémy s připojením, konfigurací a ověřováním.
Existují tři úrovně výřečnosti:
- úroveň 1 (
-v
) - úroveň 2 (
-vv
) - úroveň 3 (
-vvv
)
Proto místo přístupu ke vzdálenému serveru pomocí syntaxe ssh [server_ip]
přidejte -v
volbu a spusťte:
ssh -v [server_ip]
Případně můžete použít:
ssh -vv [server_ip]
nebo
ssh -vvv [server_ip]