Ubuntu – Kompletny przewodnik po konfiguracji SSH w systemie Ubuntu
SSH (Secure Shell) to jeden z najpopularniejszych i najbezpieczniejszych sposobów na zdalne zarządzanie systemem. Jest to nieocenione narzędzie, które pozwala na zdalny dostęp do serwera lub komputera, umożliwiając administratorom systemów i użytkownikom zarządzanie maszynami zdalnie. W tym artykule omówimy, jak skonfigurować zdalny dostęp do systemu Ubuntu przy pomocy SSH.
1. Instalacja serwera SSH na Ubuntu
Pierwszym krokiem w konfiguracji SSH jest zainstalowanie odpowiedniego serwera SSH na systemie Ubuntu. Zwykle jest to OpenSSH Server, który jest dostępny w oficjalnych repozytoriach Ubuntu.
a) Instalacja OpenSSH Server
- Otwórz terminal.
- Zaktualizuj listę dostępnych pakietów:
sudo apt update
- Zainstaluj serwer SSH:
sudo apt install openssh-server
- Po zakończeniu instalacji, sprawdź, czy usługa SSH działa poprawnie, uruchamiając:
sudo systemctl status ssh
Powinieneś zobaczyć komunikat wskazujący, że usługa SSH działa.

2. Konfiguracja pliku sshd_config
Aby skonfigurować serwer SSH, należy edytować plik konfiguracyjny sshd_config, który znajduje się w katalogu /etc/ssh.
a) Edycja pliku sshd_config
- Otwórz plik konfiguracyjny za pomocą edytora tekstowego, np. nano:
sudo nano /etc/ssh/sshd_config
- W tym pliku możesz skonfigurować różne opcje, takie jak:
- Port – domyślnie port SSH to 22, ale dla większego bezpieczeństwa można go zmienić.
- PermitRootLogin – ta opcja decyduje, czy użytkownik root może logować się przez SSH. Zwykle zaleca się wyłączyć tę opcję, ustawiając
PermitRootLogin no
, aby zwiększyć bezpieczeństwo. - PasswordAuthentication – jeśli chcesz zezwolić na logowanie za pomocą hasła, upewnij się, że ta opcja jest ustawiona na
yes
. Jeśli preferujesz logowanie za pomocą kluczy SSH, ustaw ją nano
.
Na przykład, aby zmienić port na 2222 i wyłączyć logowanie dla roota:
Port 2222 PermitRootLogin no PasswordAuthentication yes
- Po wprowadzeniu zmian, zapisz plik i zamknij edytor (Ctrl+X, potem Y i Enter).
b) Ponowne uruchomienie serwera SSH
Po dokonaniu zmian w konfiguracji, musisz ponownie uruchomić usługę SSH, aby zastosować zmiany:
sudo systemctl restart ssh
3. Konfiguracja zapory sieciowej (Firewall)
Jeśli używasz zapory sieciowej (np. ufw w Ubuntu), musisz otworzyć odpowiedni port, aby umożliwić zdalne połączenie SSH.
a) Sprawdzenie statusu zapory sieciowej
Aby sprawdzić, czy zapora sieciowa jest włączona, użyj polecenia:
sudo ufw status
b) Otwieranie portu SSH (domyślnie port 22)
Aby umożliwić połączenie SSH na porcie 22 (lub innym, jeśli zmieniłeś port), użyj polecenia:
sudo ufw allow 22/tcp
Jeśli zmieniłeś port na 2222 (jak w poprzednim przykładzie), otwórz ten port:
sudo ufw allow 2222/tcp
c) Sprawdzenie statusu zapory po zmianach
Po otwarciu portu, sprawdź ponownie status zapory, aby upewnić się, że zmiany zostały zastosowane:
sudo ufw status
4. Generowanie i konfiguracja kluczy SSH
Dla dodatkowego bezpieczeństwa zaleca się korzystanie z kluczy SSH zamiast haseł do logowania się na serwerze. Dzięki temu tylko osoby posiadające odpowiedni klucz prywatny mogą uzyskać dostęp.
a) Generowanie kluczy SSH
- Na komputerze lokalnym (z którego chcesz połączyć się z Ubuntu) otwórz terminal.
- Wygeneruj parę kluczy SSH:
ssh-keygen -t rsa -b 4096
- Po wprowadzeniu tego polecenia, zostaniesz poproszony o podanie lokalizacji, w której chcesz zapisać klucz. Jeśli nie chcesz zmieniać domyślnej lokalizacji, po prostu naciśnij Enter.
- Zostaniesz również poproszony o podanie hasła do klucza. Możesz pominąć ten krok, ale dla bezpieczeństwa warto ustawić hasło.
b) Skopiowanie klucza publicznego na serwer Ubuntu
Aby umożliwić logowanie za pomocą klucza SSH, musisz skopiować klucz publiczny na serwer Ubuntu. Najłatwiej zrobić to za pomocą polecenia ssh-copy-id:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@adres_IP_ubuntu
Zamień user
na nazwę użytkownika w systemie Ubuntu, a adres_IP_ubuntu
na adres IP serwera, do którego chcesz uzyskać dostęp.
c) Testowanie połączenia SSH
Po skopiowaniu klucza, spróbuj połączyć się z serwerem za pomocą SSH:
ssh user@adres_IP_ubuntu
Jeśli wszystko zostało poprawnie skonfigurowane, będziesz mógł połączyć się z serwerem bez wprowadzania hasła.
5. Zabezpieczenie połączenia SSH
Aby zwiększyć bezpieczeństwo połączeń SSH, możesz zastosować kilka dodatkowych metod:
a) Zmiana portu SSH
Zmienienie domyślnego portu (22) na inny może pomóc w uniknięciu ataków brute-force. Aby zmienić port, edytuj plik /etc/ssh/sshd_config:
Port 2222
Następnie zrestartuj usługę SSH:
sudo systemctl restart ssh
b) Ograniczenie logowania tylko dla określonych użytkowników
Aby zwiększyć bezpieczeństwo, możesz zezwolić na logowanie tylko dla określonych użytkowników:
- Edytuj plik /etc/ssh/sshd_config.
- Dodaj następującą linię, aby umożliwić logowanie tylko dla użytkownika
user
:AllowUsers user
- Zapisz plik i zrestartuj SSH:
sudo systemctl restart ssh
6. Rozwiązywanie problemów z połączeniem SSH
a) Brak połączenia z serwerem SSH
- Sprawdź, czy serwer SSH jest uruchomiony:
sudo systemctl status ssh
- Sprawdź, czy zapora sieciowa nie blokuje portu SSH:
sudo ufw status
- Spróbuj połączyć się za pomocą opcji -v (verbose), aby uzyskać szczegółowe informacje o próbie połączenia:
ssh -v user@adres_IP_ubuntu
Podsumowanie
SSH to potężne narzędzie umożliwiające zdalne zarządzanie systemem Ubuntu. Dzięki powyższemu przewodnikowi skonfigurujesz serwer SSH, stworzysz bezpieczne połączenie oraz dostosujesz ustawienia zgodnie z Twoimi potrzebami. Pamiętaj, aby regularnie aktualizować oprogramowanie i stosować najlepsze praktyki zabezpieczeń, aby chronić swój system przed nieautoryzowanym dostępem.