Jak naprawić błąd SSH „Odmowa połączenia” w systemie Linux

Jak naprawić błąd SSH „Odmowa połączenia” w systemie Linux

SSH to protokół sieciowy, który umożliwia bezpieczny dostęp do zdalnego systemu i zarządzanie nim przez sieć. Podczas łączenia się ze zdalną maszyną przez SSH mógł wystąpić błąd „odmowa połączenia”. Ten problem może być frustrujący, zwłaszcza jeśli jesteś administratorem systemu i musisz pilnie wykonać pewne zadania w systemie zdalnym.

Przyjrzyjmy się niektórym możliwym przyczynom błędu SSH „odmowa połączenia” i metodom jego rozwiązania.

1. Sprawdź, czy jest zainstalowany serwer SSH

Jedną z możliwych przyczyn błędu „odmowa połączenia” jest to, że na zdalnym komputerze nie działa serwer SSH. Bez serwera SSH maszyna nie będzie akceptować przychodzących połączeń SSH i nie będziesz mieć do niej zdalnego dostępu.

Tak więc pierwszym krokiem w rozwiązaniu problemu z błędem jest sprawdzenie, czy serwer SSH jest zainstalowany na zdalnym komputerze. Użyj następującego polecenia, aby zweryfikować instalację serwera SSH:

W przypadku dystrybucji opartych na Debianie:

dpkg --list | grep ssh

W przypadku dystrybucji opartych na RHEL:

yum list installed | grep ssh

W openSUSE:

zypper search -i | grep ssh

W dystrybucjach opartych na Arch:

pacman -Q | grep ssh

Jeśli serwer SSH jest zainstalowany na zdalnym komputerze, zobaczysz go na liście danych wyjściowych. W przeciwnym razie musisz zainstalować serwer OpenSSH na zdalnym komputerze, do którego chcesz uzyskać dostęp przez SSH. OpenSSH to otwarta wersja narzędzi SSH do zdalnego dostępu i kontrolowania systemów.

Aby zainstalować serwer OpenSSH, użyj następujących poleceń:

W przypadku dystrybucji opartych na Debianie:

sudo apt install openssh-server

W przypadku dystrybucji opartych na RHEL:

sudo yum install openssh-server

W openSUSE:

sudo zypper install openssh

W dystrybucjach opartych na Arch:

pacman -S openssh

2. Sprawdź stan usługi SSH

Innym powodem błędu „odmowa połączenia” może być to, że usługa SSH jest wyłączona lub nie działa na zdalnym komputerze. Po upewnieniu się, że serwer SSH jest zainstalowany, drugą rzeczą, którą musisz sprawdzić, jest status serwera.

sudo systemctl status sshd

Jeśli usługa jest uruchomiona, wyjście wskaże ją jako aktywną (działającą) . W przeciwnym razie zobaczysz coś w rodzaju nieaktywnego (martwego) .

stan serwera SSH

Jeśli serwer SSH nie jest uruchomiony, możesz go uruchomić ręcznie za pomocą następującego polecenia:

sudo systemctl start sshd

Możesz także włączyć automatyczne uruchamianie usługi przy starcie za pomocą:

sudo systemctl enable sshd

3. Sprawdź port SSH

Domyślnie serwer SSH działa na porcie 22. Można jednak zmienić domyślny port. Dlatego jeśli pojawi się błąd „odmowa połączenia” SSH, może to być spowodowane tym, że próbujesz połączyć się z serwerem SSH na domyślnym porcie 22, gdy działa on na innym porcie.

Możesz użyć polecenia netstat z grep, aby znaleźć port, na którym nasłuchuje serwer SSH:

sudo netstat -plntu | grep ssh

sprawdź port ssh

Możesz także znaleźć port SSH z pliku sshd_config za pomocą następującego polecenia:

grep port /etc/ssh/sshd_config

Po zidentyfikowaniu właściwego portu SSH spróbuj połączyć się ze zdalnym systemem za pomocą tego konkretnego portu.

4. Sprawdź zaporę systemową

Większość problemów z łącznością wynika z tego, że zapora komputera blokuje niektóre porty lub usługi. Jeśli zdalna maszyna ma zainstalowany i uruchomiony serwer SSH, następnym krokiem jest sprawdzenie zapory.

Aby dowiedzieć się, czy zapora blokuje połączenie, tymczasowo wyłącz zaporę za pomocą następujących poleceń:

W dystrybucjach Linuksa opartych na Debianie i Arch:

sudo ufw disable

W przypadku dystrybucji opartych na RHEL i openSUSE:

sudo systemctl disable firewalld

Jeśli błąd nie pojawia się po wyłączeniu zapory, oznacza to, że zapora blokowała połączenie. W takim przypadku ponownie włącz zaporę i dodaj regułę zezwalającą na SSH.

W dystrybucjach systemu Linux opartych na Debianie i Arch użyj następującego polecenia, aby zezwolić na SSH w zaporze UFW:

sudo ufw allow ssh

Alternatywnie możesz również zezwolić na SSH na podstawie numeru portu w zaporze. Powiedzmy, że serwer SSH używa portu 5555, wtedy użyjesz następującego polecenia, aby zezwolić na to w zaporze:

sudo ufw allow 5555

Aby sprawdzić, czy reguła została pomyślnie dodana, sprawdź status UFW:

sudo ufw status

W dystrybucjach opartych na RHEL i openSUSE użyj następującego polecenia, aby zezwolić na SSH w zaporze:

sudo firewall-cmd --permanent --add-service=ssh

Aby zezwolić na SSH według numeru portu, użyj następującego polecenia:

sudo firewall-cmd --permanent --add-port={port}/tcp

W przypadku serwera SSH działającego na porcie 4444 polecenie wyglądałoby następująco:

sudo firewall-cmd --permanent --add-port=4444/tcp

Aby zweryfikować pomyślne dodanie reguły w zaporze, uruchom:

sudo firewall-cmd --list-all

5. Rozwiąż konflikty adresów IP

Istnieje również prawdopodobieństwo wystąpienia błędu „odmowa połączenia” SSH z powodu konfliktu adresu IP serwera SSH z adresem IP innego systemu w sieci. Dzieje się tak, gdy dwa systemy w sieci twierdzą, że mają ten sam adres IP, co powoduje konflikt adresów IP.

Aby potwierdzić, czy w Twojej sieci występuje konflikt adresów IP, użyj narzędzia arp-scan w następujący sposób:

arp-scan [network-id]

W przypadku konfliktu adresów IP w danych wyjściowych zostanie wyświetlony zduplikowany adres IP. Poniższy zrzut ekranu jest przykładem konfliktu adresów IP w sieci:

używając arp-scan, aby znaleźć zduplikowany adres IP

Aby uniknąć konfliktów adresów IP, upewnij się, że żadne urządzenia nie mają statycznych adresów IP, które pokrywają się z adresami puli DHCP.

Dodatkowa wskazówka: uruchom SSH w trybie pełnym

Za każdym razem, gdy napotkasz błąd SSH, spróbuj uruchomić polecenie ssh w trybie pełnym, aby wyśledzić problem. Aby uruchomić SSH w trybie pełnym, użyj polecenia ssh z opcją -vvv w następujący sposób:

ssh -vvv username@ip_address

debugowanie ssh

W trybie szczegółowym na każdym etapie połączenia zobaczysz komunikaty debugowania, które pomogą Ci zrozumieć, gdzie leży problem.

Rozwiązywanie problemów z błędem SSH „Odmowa połączenia” w systemie Linux

Identyfikując potencjalne przyczyny błędu połączenia SSH i wdrażając sugerowane rozwiązania, będziesz w stanie rozwiązać problem i rozwiązać błąd „odmowa połączenia” SSH. Oprócz tych kroków upewnij się, że łączysz się z właściwym adresem IP i używasz właściwych danych logowania.

Aby Twoje zdalne połączenie było bezpieczniejsze, możesz skonfigurować uwierzytelnianie dwuskładnikowe dla SSH w systemie Linux.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *