33%

Black Friday Sale Off on everything

and 40% off for dedicated bulgaria servers

Użyj kodu:

BLACK33
BG40
Użyj promocji
29.10.2024

Jak zainstalować i skonfigurować SSH

Instalacja i zabezpieczenie SSH na AlexHost VPS: Konfiguracja Zero-Trust w 2025 roku

SSH = jedyne drzwi do serwera. Błędna konfiguracja = włamanie w <5 minut. VPS AlexHost z NVMe i ochroną DDoS zapewnia dostęp do roota, port 1 Gbps – idealny dla wzmocnionego SSH. 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 i 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 będziesz mieć zainstalowany serwer i klienta OpenSSH, co pozwoli ci zarówno uruchomić serwer SSH, jak i połączyć się z innymi serwerami SSH


Krok 2: Uruchamianie i włączanie 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 przy starcie systemu:

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ącą linię 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 oparte na kluczach

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 wprowadzenie nazwy pliku do zapisania klucza (lub naciśnij Enter, aby użyć domyślnej lokalizacji) i 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żna 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, aby przestrzegać najlepszych praktyk bezpieczeństwa, aby zapewnić, że serwer jest chroniony 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 z 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

Podsumowanie

Instalacja i konfiguracja SSH jest podstawową umiejętnością dla każdego administratora lub użytkownika Linuksa, który musi bezpiecznie zarządzać zdalnymi systemami. 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.

33%

Black Friday Sale Off on everything

and 40% off for dedicated bulgaria servers

Użyj kodu:

BLACK33
BG40
Użyj promocji