SFTP (SSH File Transfer Protocol) to protokół do bezpiecznego przesyłania, pobierania i zarządzania plikami na zdalnym serwerze, który działa jako część kanału SSH. W praktyce to znaczy, że logujesz się tym samym tunelem co przy zwykłym ssh — na porcie 22 — i wewnątrz tego zaszyfrowanego połączenia kopiujesz pliki, tworzysz katalogi czy zmieniasz uprawnienia. Cały ruch jest szyfrowany: zarówno hasło/klucz, jak i sama zawartość plików. To główna różnica wobec starego, gołego FTP, który ślicznie wysyłał Twoje hasło czystym tekstem przez sieć.
Jak to działa i do czego służy
SFTP nie jest „FTP-em z dokręconym SSL” — to całkowicie osobny protokół, zaprojektowany od zera jako rozszerzenie SSH. Nie myl go z FTPS (to FTP opakowany w TLS, inna bajka). Jeden szyfrowany kanał obsługuje wszystko: uwierzytelnianie, listowanie katalogów, transfer i operacje na plikach. Dzięki temu łatwiej przechodzi przez firewalle — wystarczy otwarty port SSH, bez kombinowania z trybem aktywnym/pasywnym jak w FTP.
Używasz go wszędzie tam, gdzie trzeba ruszyć pliki na serwer: wgranie strony na hosting, zrzucenie backupu, podmiana configu czy pobranie logów. Bonus: skoro masz dostęp przez klucze SSH, dostajesz uwierzytelnianie kluczem publicznym zamiast wklepywania hasła za każdym razem.
Przykład z praktyki
Najprościej z linii poleceń klientem sftp (jest w pakiecie OpenSSH):
- Połączenie:
sftp [email protected] - Wgranie pliku:
put strona.zip - Pobranie pliku:
get backup.sql - Lista plików na serwerze:
ls, a lokalniells
Jeśli wolisz klikać, te same operacje robisz w WinSCP (Windows), FileZilla czy Cyberduck — wystarczy wybrać protokół SFTP zamiast FTP. Pod spodem to wciąż ten sam SSH.
Częste błędy i mity
- SFTP ≠ FTPS. Brzmią podobnie, robią to samo zadanie, ale to dwa różne protokoły. SFTP siedzi na SSH (port 22), FTPS na FTP + TLS (zwykle port 990/21).
- SFTP to nie SCP. SCP też lata przez SSH, ale tylko kopiuje pliki — SFTP daje pełne zarządzanie zdalnym systemem plików (przeglądanie, usuwanie, wznawianie transferu).
- „Mam dostęp SSH, więc SFTP musi działać” — niekoniecznie. Czasem administrator wyłącza podsystem SFTP albo zamyka konto w chroot jail, więc widzisz tylko jeden katalog. Jak
putwywala „permission denied”, sprawdź uprawnienia katalogu, nie protokół.
Pojęcia powiązane
SSH, FTP, FTPS, SCP, rsync, OpenSSH, uwierzytelnianie kluczem publicznym, port 22.