SFTP vs FTPS — co wybrać
Różnice między SFTP, FTPS i zwykłym FTP. Bezpieczeństwo, kompatybilność, porty. Dlaczego SFTP jest lepszy ale wymaga SSH (pakiety HS5+).
Trzy protokoły do transferu plików. Brzmią podobnie, ale są technicznie różne. W tym tutorialu zrozumiesz różnice, plusy/minusy każdego i wybierzesz najlepszy dla siebie.
Co zyskasz
- Zrozumiesz różnicę: FTP vs FTPS vs SFTP.
- Wybierzesz najbezpieczniejszy działający w Twoim pakiecie.
- Skonfigurujesz klienta odpowiednio.
Wymagania wstępne
- Konto IQHost.
Trzy protokoły
Wskazówka
Nazwy mylące — łatwo pomylić:
- FTP — File Transfer Protocol, oryginalny (1971), plain text
- FTPS — FTP z TLS (Secure), szyfrowane na warstwie FTP
- SFTP — SSH File Transfer Protocol, zupełnie inny protokół (przez SSH)
SFTP ≠ FTPS! Mimo podobnej nazwy.
Porównanie
| Cecha | FTP | FTPS | SFTP |
|---|---|---|---|
| Port | 21 | 21 (+ 990) | 22 |
| Szyfrowanie | ❌ NIE | ✅ TLS | ✅ SSH |
| Hasła w plaintext | ⚠️ TAK | ❌ NIE | ❌ NIE |
| Pakiet IQHost | HS1+ | HS1+ | HS5+ (SSH) |
| Łatwość firewalli | 🟢 Łatwo | 🟡 Trudniej | 🟢 Łatwo |
| Klient builtin Windows | Tak | Częściowo | Nie (wymaga WinSCP, PuTTY) |
| Bezpieczeństwo | ⚠️ Niskie | 🟢 Wysokie | 🟢 Najwyższe |
| Standardowe użycie | Tylko intranet | Większość | Programiści, SSH-friendly |
| Speed | Najszybsze (brak overhead) | Lekki overhead TLS | Mały overhead SSH |

Szczegółowo
FTP (port 21)
Plain text — login, hasło i pliki idą po sieci bez szyfrowania. Każdy w pośredniej sieci (kawiarnia, lotnisko, sąsiad WiFi) może przechwycić.
Kiedy używać: TYLKO w prywatnej sieci LAN. Albo do transferu publicznych plików (bez wrażliwych danych) na własne ryzyko.
Nie używaj w produkcji. Punkt.
FTPS (port 21 + TLS)
To samo co FTP, plus TLS szyfrowanie. Hasła i transfer bezpieczne. Dwie warianty:
- Explicit (najbardziej popularne) — port 21, klient prosi o
AUTH TLSpo połączeniu - Implicit — port 990, TLS od pierwszej milisekundy
W IQHost — Explicit standardowo.
Plusy:
- Działa w pakietach HS1+ (bez SSH)
- Szybsze niż SFTP (mniej overhead niż SSH)
- Wsparcie w FileZilla, WinSCP, większości klientów
Minusy:
- Tryb pasywny / aktywny może być problematyczny przy firewallach
- Cert TLS musi być zaufany (Let's Encrypt w IQHost — tak)
- Dwa kanały (control + data) — trochę bardziej skomplikowane niż SFTP
SFTP (port 22)
To inny protokół — używa SSH (Secure Shell) do transferu plików. Wymaga dostępu SSH na koncie hostingowym.
W IQHost SSH = pakiet HS5+.
Plusy:
- Najbardziej bezpieczne (pełne szyfrowanie SSH)
- Jeden port (22) — łatwiej przez firewalle
- Obsługuje klucze SSH (zamiast haseł)
- Sztywne uwierzytelnianie (publickey)
Minusy:
- Wymaga SSH na hostingu (HS5+)
- Mały overhead SSH (mniej istotny przy nowoczesnych CPU)
Co wybrać?
Masz HS5 lub wyżej (z SSH)?
→ SFTP
- Pełne szyfrowanie
- Jeden port
- Obsługa kluczy SSH
- Standardowo używany przez developerów
Masz HS1 (bez SSH)?
→ FTPS (Explicit TLS)
- Najlepsze co masz w pakiecie
- Szyfrowane logowanie i transfer
- Wystarczające dla 95% zastosowań
Kiedy zwykłe FTP?
Praktycznie nigdy. Wyjątki:
- Sieć lokalna w pełni kontrolowana (intranet bez WiFi)
- Stare urządzenia/skrypty nie obsługujące TLS
- Tylko publiczne, niewrażliwe pliki
Konfiguracja klienta
FileZilla
Patrz Konfiguracja FileZilla.
FTPS: Encryption = Require explicit FTP over TLS.
SFTP: Protocol = SFTP.
WinSCP
Patrz Konfiguracja WinSCP.
SFTP: File Protocol = SFTP.
FTPS: File Protocol = FTP, Encryption = TLS/SSL Explicit.
CLI (curl, lftp, sftp)
# FTPS
lftp -u user,pass ftps://host36592.iqhs.pl
# SFTP
sftp host36592@host36592.iqhs.pl
# SFTP z kluczem
sftp -i ~/.ssh/id_rsa host36592@host36592.iqhs.pl
Klucze SSH dla SFTP
Najlepsza praktyka — używać kluczy SSH zamiast haseł dla SFTP:
- Wygeneruj klucz lokalnie:
ssh-keygen -t ed25519 - Skopiuj klucz publiczny (
id_ed25519.pub) - W DA: Funkcje zaawansowane → Klucze SSH → wklej
- W kliencie (FileZilla, WinSCP) wskaż klucz prywatny
Potem: SFTP loguje się bez podawania hasła — używa pary kluczy.
Plus zalety:
- Hasło nigdy nie idzie po sieci
- Klucz może być chroniony hasłem lokalnie (jeśli ktoś go ukradnie, nadal nie zadziała bez hasła klucza)
- Trudniej brute-force (klucz 256+ bit vs hasło 16 znaków)
Patrz Klucze SSH.
Najczęstsze problemy
1. „Klient mówi 'connection failed' z FTPS"
- Port 21 musi być otwarty
- Tryb pasywny (Passive) zwykle działa lepiej
- Cert TLS — sprawdź w przeglądarce
https://host36592.iqhs.pl:2222czy działa
2. „SFTP nie łączy się — pakiet HS1"
HS1 nie ma SSH → SFTP niedostępne. Użyj FTPS.
3. „Mam SSH klucz, ale SFTP wymaga hasła"
- Klucz dodany w DA?
- Klient wskazuje prywatny klucz (nie publiczny)?
- Format klucza — WinSCP wymaga
.ppk, OpenSSH używa innego formatu (konwersja PuTTYgen)
4. „Po przełączeniu z FTP na FTPS hasło 'wrong'"
Hasło to samo — błąd w innym miejscu. Sprawdź:
- Encryption ustawiony (Require explicit FTP over TLS)
- Port 21
- Login pełna nazwa
5. „Niektóre pliki przesyłają się binary, niektóre ASCII"
- W FTP tryb transferu: ASCII (psuje binary jak JPG) lub Binary (uniwersalne).
- W FileZilla: Transfer → Transfer type = Binary (lub Auto).
- SFTP — zawsze binary.
6. „Bardzo wolny upload"
- Sprawdź czy nie masz limitu w kliencie
- Internet — speedtest
- Czasem antywirus skanuje każdy upload — wyłącz na chwilę
Słowniczek
- TLS (Transport Layer Security) — protokół szyfrujący, następca SSL.
- SSH (Secure Shell) — protokół zdalnego logowania.
- Explicit FTP over TLS — klient żąda TLS po połączeniu na port 21.
- Implicit FTP over TLS — TLS od pierwszej milisekundy, port 990.
- Tryb Active/Passive — kto inicjuje połączenie danych (Passive = klient, łatwiej z firewallami).
Related
Feedback
Czy ten artykuł pomógł?