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:

W praktyce: jeśli masz dostęp SSH do serwera Linux, masz też SFTP. W większości przypadków nie wymaga to żadnej dodatkowej konfiguracji po stronie serwera.

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:

Porównanie obok siebie

Cecha FTP SFTP FTPS
Oparty naFTPSSHFTP + TLS
Domyślny port212221 (jawny) / 990 (niejawny)
SzyfrowanieBrakZawsze (SSH)Tak (TLS)
Uwierz. kluczemNieTakNie
Wymagany certyfikatNieNieTak
Przyjazny dla zaporyZłożonyProsty (1 port)Złożony
Dostępność serweraPowszechnaKażdy serwer SSHWymaga 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?