SSH (Secure Shell) to protokół, który umożliwia bezpieczne, zaszyfrowane połączenie z odległym serwerem i zarządzanie nim z wiersza poleceń. Zastąpił nieszyfrowany Telnet.
Jak działa SSH?
Klient łączy się z serwerem przez port 22, strony uzgadniają szyfrowanie i uwierzytelniają użytkownika hasłem lub, bezpieczniej, parą kluczy. Cała komunikacja jest szyfrowana.
Uwierzytelnianie kluczem SSH
Generujesz parę kluczy: prywatny zostaje na Twoim komputerze, a publiczny trafia na serwer. Logowanie nie wymaga hasła, a klucz trudno przechwycić czy zgadnąć.
SSH, SFTP i FTP
SFTP to przesyłanie plików przez SSH i jest szyfrowane. Klasyczny FTP przesyła dane i hasła jawnym tekstem, więc powinno się go unikać.
Klucz prywatny należy chronić hasłem i nigdy nie udostępniać, a na serwerze wyłączyć logowanie hasłem dla konta root.
Podstawowe polecenia i zabezpieczenia
Połączenie nawiązuje polecenie ssh uzytkownik@serwer, a klucz generuje ssh-keygen. Plik ~/.ssh/config pozwala zapisać skróty dla często używanych serwerów. Na serwerze warto wyłączyć logowanie hasłem i dla konta root, zmienić domyślne ustawienia dostępu i zainstalować narzędzie blokujące ataki siłowe, takie jak Fail2ban. Odcisk klucza serwera sprawdź przy pierwszym połączeniu.
Zobacz w praktyce
Jak połączyć się z serwerem przez FTP i SFTP?
Jak bezpiecznie przechowywać hasła użytkowników w bazie danych
Ochrona przed atakami brute force – jak zabezpieczam logowanie na stronie i serwerze