Data dodania: 18-05-2025
Znany również jako:
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 |