SFTP

Kasia Bielawska
>
Kasia Bielawska

Secure File Transfer Protocol

Co to jest SFTP?

SFTP (SSH File Transfer Protocol) to protokół służący do bezpiecznego przesyłania plików i wykonywania operacji na plikach znajdujących się na zdalnym serwerze. Najczęściej działa w ramach połączenia SSH, dzięki czemu komunikacja pomiędzy komputerem użytkownika a serwerem jest szyfrowana.

Za pomocą SFTP możesz między innymi wysyłać pliki na serwer, pobierać je, tworzyć katalogi, zmieniać nazwy plików, przenosić je oraz usuwać – oczywiście w granicach uprawnień nadanych danemu użytkownikowi.

SFTP jest często wykorzystywany podczas zarządzania stronami internetowymi, wdrażania zmian w aplikacjach, wykonywania kopii plików oraz pracy administratorów i programistów. Może być obsługiwany zarówno z poziomu graficznego klienta, jak i terminala.

Jak działa SFTP?

SFTP działa w modelu klient–serwer. Na komputerze użytkownika znajduje się klient SFTP, a po drugiej stronie serwer obsługujący połączenia SSH i usługę SFTP.

Typowe połączenie przebiega w kilku etapach. Klient nawiązuje kontakt z serwerem, sprawdza jego tożsamość, ustala parametry bezpiecznej komunikacji, a następnie użytkownik zostaje uwierzytelniony. Po poprawnym zalogowaniu może wykonywać dozwolone operacje na plikach i katalogach.

Połączenie korzysta z zabezpieczeń SSH. Oznacza to, że zarówno dane uwierzytelniające, polecenia, jak i przesyłane pliki są chronione podczas transmisji. Osoba przechwytująca ruch sieciowy nie powinna otrzymać ich w postaci zwykłego, czytelnego tekstu.

Jaki port wykorzystuje SFTP?

Połączenia SSH, a więc najczęściej także SFTP, standardowo kojarzone są z portem 22. Nie oznacza to jednak, że każde środowisko musi używać właśnie tego numeru. Administrator może skonfigurować usługę SSH na innym porcie. Dlatego podczas konfigurowania klienta SFTP najlepiej korzystać z danych podanych przez administratora lub dostawcę usługi, zamiast zakładać, że port zawsze ma wartość 22.

Jak uwierzytelnia się użytkownik SFTP?

Najczęściej stosuje się login i hasło albo uwierzytelnianie za pomocą klucza SSH. Dostępne metody zależą od konfiguracji serwera.

W przypadku kluczy SSH użytkownik posiada parę kluczy kryptograficznych. Klucz publiczny znajduje się na serwerze, a prywatny pozostaje po stronie użytkownika. Klucza prywatnego nie należy udostępniać innym osobom ani umieszczać w publicznych repozytoriach.

Logowanie za pomocą kluczy jest szczególnie użyteczne przy automatyzacji, wdrożeniach aplikacji i regularnym zarządzaniu środowiskiem typu serwer VPS.

Do czego służy SFTP?

SFTP kojarzy się przede wszystkim z wysyłaniem strony na serwer, ale jego możliwości są szersze. Pozwala wykonywać typowe operacje na zdalnym systemie plików bez udostępniania ich przez nieszyfrowane połączenie.

  • Wysyłanie plików na serwer – np. plików strony, grafik, skryptów lub plików konfiguracyjnych.
  • Pobieranie plików – przydatne podczas wykonywania lokalnej kopii, diagnostyki lub dalszej edycji.
  • Tworzenie i usuwanie katalogów – jeśli konto posiada odpowiednie uprawnienia.
  • Zmiana nazw i przenoszenie plików – bez konieczności wcześniejszego pobierania ich na komputer.
  • Zarządzanie uprawnieniami – część klientów pozwala zmieniać prawa dostępu do plików i katalogów, jeśli umożliwia to serwer.
  • Automatyczny transfer danych – SFTP może być używany przez skrypty i systemy wykonujące cykliczne operacje.

Do czego przydaje się SFTP w WordPressie?

W WordPressie SFTP może przydać się wtedy, gdy potrzebujesz dostępu bezpośrednio do plików instalacji. Możesz w ten sposób sprawdzić katalogi motywów i wtyczek, pobrać plik konfiguracyjny, zmienić nazwę katalogu problematycznej wtyczki albo przesłać pliki potrzebne podczas migracji. Jest to szczególnie pomocne, gdy kokpit WordPressa przestaje działać i nie możesz wykonać potrzebnej operacji z poziomu przeglądarki. Przy pracy z hostingiem WordPress dostęp do plików jest jednym z podstawowych narzędzi diagnostycznych.

Jeżeli oprócz plików potrzebujesz wykonywać polecenia bezpośrednio na serwerze, potrzebujesz pełnego dostępu SSH. Więcej o takiej pracy przeczytasz również w artykule Protokół komunikacyjny SSH – jak zacząć.

SFTP a FTP, FTPS, SSH i SCP – czym się różnią?

Nazwy tych technologii są podobne, ale ich znaczenie jest inne. Szczególnie często mylone są SFTP i FTPS.

TechnologiaDo czego służy?SzyfrowanieTypowe połączenie
FTPTransfer i zarządzanie plikamiPodstawowy FTP nie szyfruje transmisjiOsobne połączenia sterujące i do transferu danych
FTPSTransfer plików zgodny z FTP, zabezpieczony TLSTak, przez TLSFTP rozszerzone o zabezpieczenia TLS
SFTPBezpieczny transfer i operacje na plikachTak, zwykle przez SSHJedno bezpieczne połączenie SSH
SSHZdalne logowanie i wykonywanie poleceń na serwerzeTakBezpieczna sesja terminalowa i dodatkowe usługi
SCPKopiowanie plików między hostamiWykorzystuje zabezpieczone połączenie SSHNarzędzie nastawione przede wszystkim na kopiowanie plików

SFTP i FTPS nie są tym samym protokołem. FTPS wywodzi się z FTP i zabezpiecza komunikację za pomocą TLS. SFTP jest natomiast odrębnym protokołem, najczęściej działającym jako podsystem SSH.

Nie należy też utożsamiać SFTP z samym SSH. SSH daje możliwość zdalnego wykonywania poleceń w terminalu, natomiast SFTP jest przeznaczony do operacji na plikach. Serwer może więc pozwalać użytkownikowi na SFTP, a jednocześnie ograniczać mu dostęp do powłoki systemowej.

Do synchronizowania większych zbiorów danych wykorzystuje się również narzędzia takie jak Rsync. Wybór zależy od tego, czy potrzebujesz prostego zarządzania plikami, synchronizacji wielu katalogów czy pełnej administracji serwerem.

Jak połączyć się przez SFTP?

Do połączenia potrzebujesz klienta SFTP oraz danych dostępowych do serwera. W zależności od konfiguracji mogą to być:

  • adres hosta lub adres IP serwera,
  • nazwa użytkownika,
  • port SSH/SFTP,
  • hasło albo klucz prywatny SSH.

W graficznym kliencie zwykle wystarczy utworzyć nowe połączenie, wybrać protokół SFTP i podać otrzymane dane. Po poprawnym zalogowaniu zobaczysz pliki i katalogi, do których Twoje konto ma dostęp.

SFTP można obsługiwać również bez programu z interfejsem graficznym. W systemie wyposażonym w odpowiednie narzędzie klienta możesz użyć terminala:

sftp użytkownik@adres-serwera

Jeżeli serwer działa na niestandardowym porcie, w popularnych klientach wiersza poleceń można wskazać go dodatkowym parametrem, np.:

sftp -P PORT użytkownik@adres-serwera

Po zalogowaniu dostępne są między innymi polecenia ls do wyświetlania plików, cd do zmiany katalogu, get do pobierania oraz put do wysyłania pliku.

Jak bezpiecznie korzystać z SFTP?

Samo korzystanie z szyfrowanego protokołu jest ważnym zabezpieczeniem, ale bezpieczeństwo zależy również od konfiguracji i sposobu logowania.

  • Sprawdzaj klucz hosta serwera. Przy pierwszym połączeniu klient może wyświetlić odcisk klucza. Warto porównać go z informacją otrzymaną od administratora.
  • Chroń klucz prywatny. Nie przesyłaj go innym osobom i nie zapisuj w publicznym miejscu.
  • Jeśli korzystasz z hasła, używaj silnego i unikalnego hasła.
  • Ograniczaj uprawnienia kont. Użytkownik powinien mieć dostęp tylko do katalogów i operacji potrzebnych do jego pracy.
  • Usuwaj nieużywane konta. Stary dostęp pracownika lub wykonawcy nie powinien pozostawać aktywny bez potrzeby.
  • Aktualizuj klienta i oprogramowanie serwera. Dotyczy to także implementacji SSH.

Czy SFTP chroni przed atakiem Man in the Middle?

Szyfrowanie SSH utrudnia przechwycenie i odczytanie komunikacji, ale użytkownik powinien również upewnić się, że łączy się z właściwym serwerem. W tym celu klient SSH/SFTP sprawdza jego klucz hosta.

Jeżeli przy znanym wcześniej serwerze klient nagle ostrzega, że jego klucz się zmienił, nie należy bez zastanowienia akceptować komunikatu. Zmiana może mieć prawidłową przyczynę, np. migrację infrastruktury, ale powinna zostać zweryfikowana. Pozwala to ograniczyć ryzyko ataku Man in the Middle.

Dodatkową kontrolę nad tym, z jakich sieci i adresów mogą być inicjowane połączenia, może zapewniać prawidłowo skonfigurowany firewall.

Potrzebujesz miejsca na stronę i bezpiecznego dostępu do jej plików? Sprawdź ofertę hostingu dla stron internetowych.

FAQ – SFTP

SFTP oznacza SSH File Transfer Protocol. Jest to protokół służący do bezpiecznego przesyłania i zarządzania plikami, najczęściej wykorzystywany w ramach połączenia SSH.

Najczęściej jest to port używany przez SSH, domyślnie 22. Administrator może jednak skonfigurować inny port, dlatego należy korzystać z danych dostępowych podanych dla konkretnego serwera.

Serwer musi obsługiwać usługę SFTP działającą zwykle w ramach SSH, ale konto SFTP nie musi mieć pełnego dostępu do powłoki terminalowej. Administrator może zezwolić wyłącznie na operacje na plikach.

Tak, jeżeli serwer na to pozwala. Uwierzytelnianie kluczem SSH jest często wykorzystywane przez administratorów, programistów i systemy automatyzujące transfer plików.