Data publikacji: 18-05-2025
Inne nazwy:
Secure ShellProtokół SSHBezpieczna powłoka zdalna
Definicja SSH
SSH (Secure Shell) to kryptograficzny protokół sieciowy umożliwiający bezpieczne logowanie, zarządzanie serwerami i przesyłanie danych przez niezaufane sieci. Używany jest głównie przez administratorów systemów i specjalistów DevOps do zarządzania infrastrukturą z poziomu wiersza poleceń.
Kluczowe funkcje SSH
- Zdalne logowanie – bezpieczny dostęp do powłoki systemu (shell) na serwerze.
- Tunelowanie (port forwarding) – szyfrowanie połączeń innych aplikacji (np. VNC, RDP).
- Transfer plików – poprzez SCP i SFTP.
- Uwierzytelnianie kluczami publicznymi – bezpieczniejsza alternatywa dla haseł.
- Komendy zdalne – uruchamianie poleceń bez pełnej sesji terminala.
Architektura działania
- Klient SSH – uruchamiany na stacji roboczej; inicjuje połączenie z serwerem.
- Serwer SSH (np. OpenSSH) – nasłuchuje na porcie 22 i obsługuje sesje.
- Uwierzytelnianie – hasło lub klucz publiczny/klucz prywatny.
- Kanał szyfrowany – cała komunikacja jest szyfrowana symetrycznie po uzgodnieniu klucza.
Typowe zastosowania
- Zdalne zarządzanie serwerami Linux i BSD.
- Automatyzacja zadań poprzez skrypty (np. Ansible, rsync przez SSH).
- Przekierowanie portów (tunelowanie aplikacji, SSH socks proxy).
- Przesyłanie plików (backup, synchronizacja danych).
- Logowanie bez hasła z wykorzystaniem kluczy SSH.
Zalety SSH
- Szyfrowanie end-to-end – zapewnia poufność i integralność danych.
- Bezpieczne uwierzytelnianie – wspiera uwierzytelnianie asymetryczne.
- Brak potrzeby dodatkowych usług VPN – wystarczy port 22.
- Integracja z narzędziami CI/CD i devops – powszechnie obsługiwany.
Wyzwania i ograniczenia
- Zarządzanie kluczami – wymaga dobrej polityki rotacji i przechowywania.
- Brak GUI – praca odbywa się wyłącznie w terminalu.
- Ryzyko ataków brute-force – szczególnie przy uwierzytelnianiu hasłem.
- Złośliwe skrypty SSH (np. ssh-copy-id w phishingu) – ryzyko socjotechniczne.
Dobre praktyki bezpieczeństwa
- Używanie kluczy RSA/ED25519 zamiast haseł.
- Ograniczenie dostępu tylko z wybranych adresów IP.
- Włączenie uwierzytelniania dwuskładnikowego (np. U2F).
- Monitorowanie logów
/var/log/auth.log
pod kątem nieautoryzowanych prób logowania.
- Automatyczne blokowanie IP po wielokrotnych błędnych próbach (np. Fail2Ban).
Powiązane narzędzia
Narzędzie |
Opis |
OpenSSH |
Najpopularniejsza implementacja SSH. |
PuTTY |
Klient SSH dla systemów Windows. |
WinSCP |
Graficzny klient SFTP i SCP. |
Mosh |
SSH z lepszym wsparciem dla niestabilnych połączeń. |
Fail2Ban |
Automatyczna ochrona przed brute-force. |
SSH vs inne protokoły
Protokół |
Bezpieczeństwo |
Funkcja główna |
Wady |
SSH |
Wysokie |
Zdalne zarządzanie |
Wymaga dostępu do terminala |
Telnet |
Brak szyfrowania |
Zdalna powłoka (archaiczna) |
Niebezpieczny – przesyła dane jawnie |
RDP |
Średnie |
Zdalny pulpit graficzny |
Większe zużycie zasobów |
VPN |
Wysokie |
Tunelowanie całej sieci |
Bardziej skomplikowana konfiguracja |