Zarówno SFTP, jak i FTPS szyfrują transfery FTP. Oba mają „S" w nazwie. Są nagminnie mylone — a ta pomyłka ma znaczenie, bo to zupełnie różne technologie działające w zupełnie różny sposób.
Wybranie złego protokołu podczas konfigurowania połączenia skutkuje nieudanym połączeniem. Wybranie właściwego wymaga zrozumienia, czym każdy z nich naprawdę jest. Oto klarowne wyjaśnienie.
FTP: punkt wyjścia
Zanim przejdziemy do bezpiecznych wariantów, warto zrozumieć zwykłe FTP. Protokół przesyłania plików (File Transfer Protocol) powstał na początku lat 70. — długo przed tym, zanim internet wyglądał choć trochę tak jak dziś. Nie ma w nim żadnego szyfrowania. Dane uwierzytelniające (nazwa użytkownika i hasło) są przesyłane przez sieć jawnym tekstem. Podobnie treść plików.
FTP jest nadal powszechnie stosowany w sieciach wewnętrznych, gdzie ruch nigdy nie opuszcza zaufanego środowiska, w starszych konfiguracjach hostingowych lub w kontrolowanych sytuacjach, gdzie szyfrowanie nie jest problemem. Jest prosty, działa i jest obsługiwany przez praktycznie każdy serwer. Ale przez publiczny internet wysyłanie danych uwierzytelniających jawnym tekstem to coś, czego naprawdę nie chcesz robić.
Tu właśnie wkraczają dwa bezpieczne warianty — i tu zaczyna się zamieszanie.
SFTP (SSH File Transfer Protocol)
Wbrew nazwie, SFTP to nie FTP z dodanym zabezpieczeniem. To zupełnie inny protokół, opracowany niezależnie jako część pakietu SSH (Secure Shell).
SFTP działa przez SSH na porcie 22. Wszystko — uwierzytelnianie, polecenia, treść plików — jest szyfrowane przez warstwę SSH. Klient SFTP i standardowy klient FTP mówią fundamentalnie różnymi protokołami, nawet jeśli efekt końcowy (przesyłanie plików) wygląda dla użytkownika tak samo.
Kluczowe cechy SFTP:
- Działa przez SSH. Jeśli serwer ma włączone SSH, niemal na pewno ma też dostępne SFTP — bez dodatkowej konfiguracji.
- Jeden port (22). Cała komunikacja odbywa się przez jeden port, co upraszcza konfigurację zapory sieciowej.
- Uwierzytelnianie kluczem. Zamiast hasła możesz uwierzytelniać się parą kluczy SSH. Klucz prywatny nigdy nie opuszcza Twojego komputera; serwer przechowuje tylko klucz publiczny. To znacznie bezpieczniejsze niż uwierzytelnianie hasłem.
- Szyfrowanie end-to-end. Dane uwierzytelniające i treść plików są zawsze szyfrowane, niezależnie od sieci, z której korzystasz.
- Brak potrzeby certyfikatu TLS. Uwierzytelnianie odbywa się przez SSH za pomocą kluczy lub haseł — nie ma certyfikatu ani jego odnawiania.
FTPS (FTP przez TLS)
FTPS to zwykłe FTP z warstwą szyfrowania TLS. Inne podejście: bierzesz istniejący protokół FTP i owijasz połączenie w TLS — tę samą warstwę szyfrowania, którą używa HTTPS.
Istnieją dwa tryby FTPS:
Jawny FTPS (FTPES)
Klient łączy się z serwerem na porcie 21 (standardowy port FTP) i natychmiast wysyła polecenie AUTH TLS, żeby przełączyć połączenie na szyfrowane. Serwer musi obsługiwać to polecenie. Tryb nazywa się „jawnym", bo klient explicite żąda przejścia na TLS.
Niejawny FTPS
Klient łączy się z portem 990 i uścisk dłoni TLS następuje natychmiast — przed jakąkolwiek komunikacją FTP. Nie ma fazy nieszyfrowanej. Ten tryb jest rzadszy, ale nadal stosowany na niektórych serwerach.
Kluczowe cechy FTPS:
- Oparty na FTP. Ten sam zestaw poleceń, te same kwestie trybu pasywnego/aktywnego, to samo wieloportowe zachowanie przy transferach danych.
- Wymaga certyfikatu TLS. Serwer potrzebuje ważnego certyfikatu SSL/TLS, który wymaga okresowego odnawiania.
- Złożoność zapory sieciowej. FTP w trybie pasywnym otwiera zakres dynamicznych portów danych. Zapory sieciowe muszą rozumieć FTP, żeby poprawnie sprawdzać te połączenia (tzw. inspekcja ruchu FTP). Przy szyfrowaniu TLS zapora nie może sprawdzać ruchu FTP, co może komplikować tryb pasywny.
- Wyłącznie uwierzytelnianie hasłem. FTPS nie obsługuje uwierzytelniania kluczem — używasz nazwy użytkownika i hasła (które jednak są szyfrowane przez TLS).
- Wysoka kompatybilność. Wiele środowisk korporacyjnych i hostingowych oferuje FTPS, bo to bezpośrednia ścieżka aktualizacji istniejącej infrastruktury FTP.
Porównanie obok siebie
| Cecha | FTP | SFTP | FTPS |
|---|---|---|---|
| Oparty na | FTP | SSH | FTP + TLS |
| Domyślny port | 21 | 22 | 21 (jawny) / 990 (niejawny) |
| Szyfrowanie | Brak | Zawsze (SSH) | Tak (TLS) |
| Uwierz. kluczem | Nie | Tak | Nie |
| Wymagany certyfikat | Nie | Nie | Tak |
| Przyjazny dla zapory | Złożony | Prosty (1 port) | Złożony |
| Dostępność serwera | Powszechna | Każdy serwer SSH | Wymaga konfiguracji |
Którego użyć?
Użyj SFTP, jeśli: zarządzasz serwerem (lub to serwer Linux/Unix z SSH), bezpieczeństwo jest priorytetem i chcesz prostej konfiguracji zapory. SFTP to nowoczesny standard. Jeśli nie masz konkretnego powodu, żeby używać czegoś innego, SFTP jest właściwym domyślnym wyborem.
Użyj FTPS, jeśli: Twój dostawca hostingu lub serwer klienta tego wymaga, albo dodajesz szyfrowanie do istniejącej konfiguracji FTP bez możliwości zmiany infrastruktury. Wiele środowisk korporacyjnych, które od lat obsługują serwery FTP, wybiera FTPS jako ścieżkę aktualizacji, bo wymaga mniejszych zmian w istniejącej infrastrukturze.
Użyj zwykłego FTP, jeśli: jesteś w zaufanej sieci wewnętrznej, gdzie szyfrowanie nie jest problemem, lub masz do czynienia z systemem legacy, który nie obsługuje żadnego z bezpiecznych wariantów. Przez publiczny internet całkowicie unikaj FTP.
FTPSuite obsługuje wszystkie trzy
FTPull (do automatycznego pobierania) i FTPush (do automatycznego wysyłania) obsługują natywnie FTP, SFTP i FTPS. Wybranie protokołu w ustawieniach połączenia to jedno kliknięcie — aplikacja automatycznie zarządza różnicami w działaniu. Wpisujesz host, port, dane uwierzytelniające i protokół; resztą zajmuje się aplikacja.
Jeśli nie jesteś pewien, którego protokołu używa Twój serwer, sprawdź nasz poradnik: FTP, SFTP czy FTPS: którego protokołu używa Twój serwer?