Jak zainstalować i skonfigurować SSH ⋆ ALexHost SRL

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills
17.12.2024

Jak zainstalować i skonfigurować SSH

SSH (Secure Shell) to protokół używany do bezpiecznego łączenia się ze zdalnymi systemami, wykonywania poleceń i przesyłania danych. Zapewnia bezpieczną metodę dla administratorów systemu, programistów i użytkowników do zdalnego zarządzania serwerami i innymi urządzeniami przy użyciu szyfrowanych połączeń. Instalacja i konfiguracja SSH jest niezbędna do bezpiecznego dostępu do serwerów, zarówno w celu administrowania systemem, pracy zdalnej, jak i rozwoju.

W tym artykule przeprowadzimy Cię przez proces instalacji i konfiguracji SSH w systemie Linux, obejmujący podstawy, opcje konfiguracji i zalecenia dotyczące bezpieczeństwa.


Co to jest SSH?

SSH to skrót od Secure Shell, który pozwala użytkownikom bezpiecznie łączyć się ze zdalnym systemem za pośrednictwem interfejsu wiersza poleceń. Protokół szyfruje dane między klientem a serwerem, dzięki czemu jest to bezpieczna metoda komunikacji, szczególnie w przypadku uzyskiwania dostępu do serwerów za pośrednictwem niezabezpieczonej sieci, takiej jak Internet.

SSH domyślnie działa na porcie 22 i może być używany do:

  • Zdalnego logowania do serwerów
  • Bezpieczny transfer plików (przy użyciu SCP lub SFTP)
  • Zdalnego wykonywania poleceń
  • Przekierowanie portów i tunelowanie

Krok 1: Instalacja SSH

Większość dystrybucji Linuksa jest dostarczana z preinstalowanym SSH, ale jeśli nie jest zainstalowany, można go łatwo zainstalować za pomocą menedżera pakietów dla danej dystrybucji.

Dla Ubuntu/Debian:

sudo apt update sudo apt install openssh-server

Dla CentOS/RHEL:

sudo yum install openssh-server

Dla Fedory:

sudo dnf install openssh-server

Dla Arch Linux:

sudo pacman -S openssh

Po instalacji zainstalowany zostanie serwer i klient OpenSSH, umożliwiając zarówno uruchamianie serwera SSH, jak i łączenie się z innymi serwerami SSH.


Krok 2: Uruchomienie i włączenie usługi SSH

Po zainstalowaniu należy uruchomić usługę SSH (znaną również jako sshd – demon SSH) i włączyć jej działanie podczas uruchamiania systemu.

Uruchamianie usługi SSH:

sudo systemctl start ssh

Włączenie uruchamiania SSH podczas rozruchu:

sudo systemctl enable ssh

Możesz sprawdzić, czy SSH działa poprawnie, wpisując:

sudo systemctl status ssh

Jeśli usługa jest uruchomiona, zobaczysz aktywny status wskazujący, że SSH jest gotowe do przyjmowania połączeń.


Krok 3: Podstawowa konfiguracja SSH

Zachowanie SSH jest kontrolowane przez plik konfiguracyjny znajdujący się pod adresem:

/etc/ssh/sshd_config

Możesz edytować ten plik, aby zmodyfikować ustawienia SSH, takie jak zmiana domyślnego portu, wyłączenie logowania roota lub skonfigurowanie uwierzytelniania opartego na kluczach.

Aby edytować plik, użyj edytora tekstu, takiego jak nano lub vim:

sudo nano /etc/ssh/sshd_config

Niektóre typowe zmiany konfiguracji obejmują:

1. Zmiana domyślnego portu SSH

Ze względów bezpieczeństwa warto zmienić domyślny port SSH z 22 na inny. Pomaga to zmniejszyć ryzyko zautomatyzowanych ataków, których celem jest domyślny port SSH.

Znajdź następujący wiersz w pliku konfiguracyjnym:

#Port 22

Usuń komentarz i zmień numer portu:

Port 2222

Po zapisaniu pliku uruchom ponownie usługę SSH, aby zastosować zmiany:

sudo systemctl restart ssh

Pamiętaj, aby zaktualizować reguły zapory sieciowej, aby zezwalać na połączenia na nowym porcie.

2. Wyłącz logowanie roota

Zezwolenie na logowanie roota przez SSH stanowi zagrożenie dla bezpieczeństwa. Aby temu zapobiec, znajdź następującą linię w pliku konfiguracyjnym:

PermitRootLogin yes

Zmień ją na:

PermitRootLogin no

Zapobiegnie to bezpośredniemu dostępowi roota przez SSH. Użytkownicy mogą nadal logować się za pomocą zwykłego konta, a następnie przełączać się na roota za pomocą sudo lub su.

3. Włącz uwierzytelnianie na podstawie klucza

Uwierzytelnianie oparte na kluczach SSH jest bezpieczniejszą metodą niż używanie haseł. Polega ona na wygenerowaniu pary kluczy SSH (klucza publicznego i prywatnego) i użyciu klucza prywatnego do uwierzytelnienia.

Aby wymusić uwierzytelnianie oparte na kluczach, znajdź następujące wiersze i upewnij się, że są ustawione na tak:

PubkeyAuthentication yes PasswordAuthentication no

Wyłącza to logowanie oparte na haśle i umożliwia dostęp do SSH tylko poprzez uwierzytelnianie oparte na kluczach.


Krok 4: Generowanie kluczy SSH (uwierzytelnianie oparte na kluczach)

Pary kluczy SSH zapewniają bezpieczny sposób logowania bez hasła. Oto jak wygenerować i skonfigurować klucze SSH:

Krok 1: Generowanie pary kluczy SSH

Na komputerze lokalnym uruchom następujące polecenie, aby wygenerować parę kluczy:

ssh-keygen -t rsa -b 4096

Zostaniesz poproszony o podanie nazwy pliku do zapisania klucza (lub naciśnięcie klawisza Enter, aby użyć domyślnej lokalizacji) oraz opcjonalnego hasła dla dodatkowego bezpieczeństwa.

Spowoduje to utworzenie dwóch plików:

  • ~/.ssh/id_rsa: Twój klucz prywatny (przechowuj go bezpiecznie i nie udostępniaj).
  • ~/.ssh/id_rsa.pub: Twój klucz publiczny (może być udostępniany i dodawany do zdalnych serwerów).

Krok 2: Skopiuj klucz publiczny na serwer

Aby użyć klucza do logowania SSH, skopiuj klucz publiczny na zdalny serwer, do którego chcesz uzyskać dostęp. Można to zrobić za pomocą polecenia ssh-copy-id:

ssh-copy-id username@remote_host

Zastąp username nazwą użytkownika zdalnego serwera, a remote_host adresem IP lub nazwą hosta serwera.

Spowoduje to skopiowanie klucza publicznego na serwer i dodanie go do pliku ~/.ssh/authorized_keys, umożliwiając logowanie bez hasła.

Krok 3: Logowanie przy użyciu klucza SSH

Teraz możesz zalogować się do zdalnego serwera przy użyciu klucza prywatnego:

ssh username@remote_host

Jeśli ustawiłeś niestandardowy port, określ go za pomocą opcji -p:

ssh -p 2222 username@remote_host

Krok 5: Zabezpieczenie konfiguracji SSH

Po skonfigurowaniu SSH ważne jest przestrzeganie najlepszych praktyk bezpieczeństwa, aby zapewnić ochronę serwera przed nieautoryzowanym dostępem.

1. Używaj silnych haseł (jeśli używasz uwierzytelniania hasłem)

Jeśli nie korzystasz z uwierzytelniania opartego na kluczach, upewnij się, że wszystkie konta użytkowników używają silnych, złożonych haseł.

2. Używanie zapory sieciowej

Upewnij się, że zapora serwera zezwala na ruch tylko na używanym porcie SSH. Na przykład, jeśli zmieniłeś SSH na port 2222, zezwól na ruch na tym porcie za pomocą ufw (w Ubuntu/Debian) lub firewalld (w CentOS/RHEL).

sudo ufw allow 2222/tcp sudo ufw enable

3. Ograniczanie dostępu SSH

Ogranicz dostęp SSH do określonych adresów IP lub zakresów, konfigurując zaporę sieciową lub używając /etc/hosts.allow i /etc/hosts.deny.


Krok 6: Testowanie i rozwiązywanie problemów z SSH

Po skonfigurowaniu SSH ważne jest, aby przetestować konfigurację. Spróbuj zalogować się za pomocą SSH, aby upewnić się, że wszystko działa poprawnie.

Typowe wskazówki dotyczące rozwiązywania problemów SSH:

  1. Sprawdź ustawienia zapory sieciowej: Upewnij się, że zapora sieciowa nie blokuje portu SSH.
  2. Sprawdź status usługi SSH: Upewnij się, że usługa SSH jest uruchomiona za pomocą systemctl status ssh.
  3. Weryfikacja konfiguracji: Podwójne sprawdzenie pliku /etc/ssh/sshd_config pod kątem wszelkich błędnych konfiguracji.
  4. Użyj trybu Verbose do debugowania: Jeśli występują problemy, użyj opcji -v podczas łączenia, aby zobaczyć szczegółowe dane wyjściowe:
ssh -v username@remote_host

Wnioski

Instalacja i konfiguracja SSH jest podstawową umiejętnością dla każdego administratora lub użytkownika Linuksa, który musi bezpiecznie zarządzać systemami zdalnymi. Postępując zgodnie z tym przewodnikiem, można skonfigurować SSH, skonfigurować go do bezpiecznego dostępu i wdrożyć najlepsze praktyki w celu ochrony serwera przed nieautoryzowanym dostępem. Po skonfigurowaniu SSH staje się potężnym narzędziem do zdalnego zarządzania, automatyzacji i bezpiecznej komunikacji między systemami.

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills