Aby zdalnie zarządzać serwerem Ubuntu przez SSH, należy skonfigurować usługę SSH na serwerze, zabezpieczyć połączenie, oraz znać podstawowe i zaawansowane narzędzia służące do administracji. Poniżej znajdziesz rozbudowany poradnik krok po kroku.
1. Co to jest SSH?
SSH (Secure Shell) to protokół umożliwiający szyfrowany, bezpieczny dostęp do zdalnego komputera lub serwera przez sieć. Pozwala administratorom wykonywać polecenia, przenosić pliki oraz zarządzać systemem Linux z dowolnego miejsca.
2. Instalacja i konfiguracja serwera SSH na Ubuntu
Krok 1 – Instalacja OpenSSH Server
Na serwerze Ubuntu otwórz terminal i wpisz:
sudo apt update sudo apt install openssh-server
To polecenie zainstaluje usługę SSH i uruchomi demona sshd
, nasłuchującego na porcie 22.
Krok 2 – Sprawdź status usługi SSH
sudo systemctl status ssh
Status active (running) oznacza, że serwer SSH jest gotowy do przyjmowania połączeń.
Krok 3 – (Opcjonalnie) Konfiguracja statycznego adresu IP
Jeśli Twój serwer będzie zarządzany przez sieć, warto ustawić statyczny adres IP, by zawsze był pod tym samym adresem:
- Edytuj plik
/etc/netplan/01-netcfg.yaml
(w zależności od wersji systemu może mieć inną nazwę). - Wprowadź odpowiednią konfigurację dla swojej sieci.
3. Połączenie z serwerem przez SSH
Krok 4 – Instalacja klienta SSH na komputerze (jeśli nie masz)
Na komputerze klienckim (zwykle system Linux również):
sudo apt install ssh -y
Krok 5 – Nawiązanie połączenia
W terminalu wpisz:
ssh nazwa_użytkownika@adres_ip_serwera
Przykład:
ssh [email protected]
Jeśli serwer używa innego niż domyślny port:
ssh -p 2222 nazwa_użytkownika@adres_ip_serwera
Pierwsze połączenie wymaga zaakceptowania „odcisku palca” serwera (’fingerprint’), po czym podajesz hasło użytkownika.
Aby zakończyć sesję, wpisz polecenie:
exit
4. Podstawowe polecenia po zalogowaniu przez SSH
- ip a – wyświetla konfigurację adresów IP.
- sudo apt update && sudo apt upgrade – aktualizacja systemu.
- top / htop – monitorowanie bieżących procesów i obciążenia.
- systemctl status nazwa_usługi – status usług systemowych.
5. Transfer plików przez SSH
Użycie scp
do przesyłania plików:
- Kopiowanie pliku na serwer –
scp lokalny_plik nazwa_użytkownika@adres_ip:/ścieżka/docelowa
- Pobieranie pliku z serwera –
scp nazwa_użytkownika@adres_ip:/ścieżka/pliku lokalny_plik
Komenda scp
wykorzystuje SSH do bezpiecznego transferu plików.
6. Zaawansowane techniki SSH
- Tunneling SSH – umożliwia przekierowanie dowolnego portu po bezpiecznym kanale, np. dla VNC czy RDP.
- Agent SSH – pozwala na przechowywanie kluczy prywatnych w pamięci RAM, eliminując konieczność ciągłego wpisywania hasła do klucza.
- Synchronizacja plików przez rsync –
rsync -avz /local/folder nazwa_użytkownika@adres_ip:/remote/folder
- X11 Forwarding (dostęp do aplikacji graficznych) – Uruchom SSH z opcją:
ssh -X nazwa_użytkownika@adres_ip
Aplikacje uruchomione na zdalnym serwerze wyświetlą się na Twoim lokalnym komputerze.
7. Zabezpieczenia SSH
- Zmiana portu SSH w pliku
/etc/ssh/sshd_config
(np. na 2222), ogranicza automatyczne ataki. - Wyłącz logowanie na root – ustaw
PermitRootLogin no
. - Używaj kluczy SSH zamiast haseł – generuj klucz poleceniem
ssh-keygen
i skopiuj go na serwer przezssh-copy-id
. - Firewall – otwórz tylko potrzebne porty (np. 22 lub inny skonfigurowany).
8. Diagnostyka i rozwiązywanie problemów
- Sprawdź czy serwer nasłuchuje:
sudo netstat -tulpn | grep ssh
- Monitoruj logi w
/var/log/auth.log
. - Upewnij się, że port nie jest blokowany przez firewall.
Podsumowanie
Dzięki SSH możesz zdalnie, bezpiecznie zarządzać serwerem Ubuntu – od prostych poleceń administracyjnych, przez transfer plików i uruchamianie programów graficznych, do zaawansowanych operacji i automatyzacji zadań. Stosuj dobre praktyki zabezpieczeń, regularnie aktualizuj system i korzystaj z kluczy publicznych dla optymalnego bezpieczeństwa.