Jak zabezpieczyć SSH na VPS z Linuksem

Autor: Zespół inżynierów ONIE · Zaktualizowano 12 listopada 2026 · Czas czytania: 2 min

Publiczny VPS otrzymuje zautomatyzowane próby logowania w ciągu kilku minut od uruchomienia. Poniższe kroki znacznie utrudniają atak na SSH. Zostały napisane dla Ubuntu lub Debiana; jeśli nie utworzyłeś jeszcze serwera, możesz wynająć VPS z Linuksem i zacząć od czystego obrazu. Zachowaj obecną sesję SSH otwartą, dopóki nie przetestujesz nowych ustawień z drugiego okna.

1. Utwórz zwykłego użytkownika z uprawnieniami sudo

adduser deploy
usermod -aG sudo deploy

2. Używaj kluczy SSH zamiast haseł

Na swoim komputerze:

ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IP

Zaloguj się raz kluczem, aby potwierdzić, że działa, zanim wyłączysz logowanie hasłem.

3. Wyłącz logowanie hasłem i rootem

Utwórz plik /etc/ssh/sshd_config.d/99-hardening.conf:

PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3

Sprawdź składnię i przeładuj usługę. Usługa nazywa się ssh na Ubuntu i Debianie, a sshd w systemach opartych na RHEL:

sudo sshd -t && sudo systemctl reload ssh

Otwórz drugie okno terminala i zaloguj się ponownie. Dopiero potem zamknij starą sesję.

4. Włącz zaporę sieciową

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

Otwieraj tylko porty, których potrzebujesz, na przykład 80 i 443 dla serwera WWW. Możesz też ograniczyć dostęp SSH do swojego adresu IP, dodając regułę zapory w panelu chmury.

5. Blokuj powtarzające się błędy za pomocą Fail2ban

sudo apt install -y fail2ban

Utwórz plik /etc/fail2ban/jail.local:

[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

6. Instaluj aktualizacje bezpieczeństwa automatycznie

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

7. Opcjonalne dodatki

  • Zmiana portu SSH zmniejsza szum w logach, ale sama w sobie nie jest środkiem bezpieczeństwa.
  • Zabezpiecz klucz prywatny hasłem i przechowuj jego kopię w bezpiecznym miejscu.
  • Sprawdzaj logowania poleceniami last i sudo journalctl -u ssh --since today.
  • Wykonaj migawkę po skonfigurowaniu serwera, aby móc przywrócić czysty stan wyjściowy.

Jeśli straciłeś dostęp, użyj konsoli przeglądarkowej w panelu chmury, aby zalogować się i naprawić konfigurację. Nasz przewodnik po ochronie przed DDoS opisuje kolejną warstwę zabezpieczeń.

Najczęściej zadawane pytania

Czy bezpiecznie jest wyłączyć logowanie rootem?

Tak, jeśli najpierw utworzysz użytkownika sudo i sprawdzisz, czy jego klucz działa. Polecenia administracyjne nadal możesz uruchamiać przez sudo.

Czy potrzebuję Fail2ban, jeśli używam tylko kluczy?

Nie jest to konieczne. Przy wyłączonym logowaniu hasłem ataki siłowe nie mogą się powieść, ale Fail2ban ogranicza szum w logach i obciążenie.

Co zrobić, jeśli zgubię klucz SSH?

Użyj konsoli w panelu chmury, aby się zalogować, dodaj nowy klucz publiczny do ~/.ssh/authorized_keys i usuń stary.

Źródła i dalsza lektura

Więcej poradników o VPS