SCP vs SFTP: którego należy użyć do przesyłania plików

SCP vs SFTP: którego należy użyć do przesyłania plików

SCP (Secure Copy) i SFTP (Secure File Transfer Program) to alternatywy dla protokołu FTP (File Transfer Protocol), który jest przydatny w przypadku nieplanowanych transferów plików. Wszystkie trzy mogą pomóc w przenoszeniu plików z jednej lokalizacji do drugiej za pośrednictwem nośnika sieciowego. Jednak FTP wysyła dane w postaci zwykłego tekstu, podczas gdy pozostałe dwa korzystają do komunikacji z protokołem transferu plików SSH (SFTP).

Co to jest SCP?

SCP to nieinteraktywny program do przesyłania plików, który po raz pierwszy pojawił się w wersji 4.2 BSD. Historycznie rzecz biorąc, do przesyłania plików między dwoma komputerami używany był rlogin i SSH. To czyniło go podatnym na zdalne exploity, ponieważ uruchamiał polecenia na zdalnym hoście, aby rozpocząć przesyłanie danych.

Transfery plików i katalogów w SCP mogą odbywać się pomiędzy maszyną lokalną a zdalnym hostem lub dwoma zdalnymi hostami. Dzięki temu może być bardziej elastyczny podczas pracy z różnymi dystrybucjami podobnymi do UNIX-a.

Terminal pokazujący transfer plików pomiędzy maszyną lokalną a serwerem zdalnym przy użyciu protokołu SCP.

SCP można także używać ze znakiem wieloznacznym, aby ułatwić przesyłanie wielu plików w oparciu o kryteria częściowego ciągu znaków. Podobnie jak w przypadku transferów bezpośrednich, tych symboli wieloznacznych można również używać do wysyłania i odbierania plików i katalogów.

Co to jest SFTP?

W przeciwieństwie do SCP, SFTP to program do przesyłania plików, który działa podobnie do monitu FTP i zdalnej powłoki. Zapewnia interaktywny monit, który umożliwia nawigację w systemie plików zdalnego komputera i manipulowanie jego zawartością.

SFTP wykorzystuje również kilka funkcji SSH, takich jak kompresja lub uwierzytelnianie za pomocą klucza publicznego, aby połączyć się z hostami i przejść do trybu interaktywnego. Dzięki temu jest to solidna przeglądarka zdalnego systemu plików dla bezgłowych maszyn UNIX.

Terminal wyświetlający monit SFTP przesyłający pliki ze zdalnego serwera z powrotem na komputer lokalny.

Protokołu SFTP można także używać do automatycznego pobierania plików, jeśli używasz nieinteraktywnej metody uwierzytelniania; w przeciwnym razie pobiera je po pomyślnym uwierzytelnieniu interaktywnym.

SCP kontra SFTP: co jest lepsze?

Istnieje kilka podobieństw pomiędzy tymi dwoma programami do przesyłania plików. Obydwa korzystają z portu TCP 22 i działają na SSH, co czyni je równymi pod względem bezpieczeństwa. Dodatkowo oba programy obsługują również przesyłanie dużych plików, ponieważ nie mają ograniczeń rozmiaru plików. Dlatego też główne różnice pomiędzy SCP i SFTP można dostrzec w ich specyfikacjach i funkcjach.

Funkcjonalność

Podstawowym celem SCP jest bezpieczne kopiowanie danych pomiędzy dwiema maszynami. Jest to widoczne w podstawowej składni programu, która wymaga podania źródła i miejsca docelowego dla każdego transferu pliku. Ułatwia to pracę przy prostych, jednorazowych transferach plików.

Tymczasem SFTP to bardziej kompletny klient przesyłania plików, który zapewnia przeglądarkę plików i pobieranie wielu plików. Dzięki tym funkcjom protokół SFTP jest idealnym rozwiązaniem dla użytkownika, który musi stale przesyłać pliki do i ze zdalnego hosta.

Zwycięzca : SFTP

Prędkość

Ponieważ zarówno SCP, jak i SFTP używają protokołu SFTP do szyfrowania i transportu plików, oba programy korzystają z tej samej prędkości transmisji podczas wysyłania i odbierania danych. Jednak rozpoczęcie tego transferu to inna historia.

SCP często szybciej osiąga maksymalną prędkość transmisji połączenia, podczas gdy SFTP pozostaje w tyle, próbując „zwiększyć” swoją prędkość. Co więcej, rozpoczęcie transferu SFTP wymaga również przejścia do monitu i użycia poleceń FTP w celu przesyłania i pobierania plików.

Zwycięzca : SCP

Bezpieczeństwo

Zarówno SCP, jak i SFTP opierają się na protokole SSH w swojej podstawowej warstwie transportowej. Dzięki temu mogą bezpiecznie przesyłać dane przez sieć przy użyciu szyfrowania na poziomie wojskowym.

Mimo to SFTP przewyższa SCP, udostępniając flagę -f, która pozwala na natychmiastowy zapis wszelkich przesłanych danych na dysk. Co więcej, interfejs wiersza poleceń udostępnia także szereg narzędzi umożliwiających aktualizację bitów uprawnień pliku.

Zwycięzca : SFTP

Rozmiar pliku

Większość współczesnych wersji SCP i SFTP w systemie Linux to 64-bitowe pliki binarne. Oznacza to, że oba narzędzia mogą hipotetycznie obsługiwać do 16 eksabajtów dowolnych danych, o ile obsługuje je również bazowy system plików.

To powiedziawszy, SCP może nadal powodować pewne problemy z dużymi plikami, szczególnie podczas pracy ze starszymi maszynami typu UNIX. Dzieje się tak głównie z powodu tych systemów, na których działają 32-bitowe wersje SCP, które mogą obsłużyć jednocześnie pliki o wielkości do 4 gigabajtów.

Zwycięzca : SFTP

Linie poleceń

SCP nie jest interaktywny i nie może czytać skryptów poleceń, więc wszystko musi być zapisane w wierszu poleceń. Umożliwia to jednak również uruchamianie go jako części większych skryptów powłoki, co może być pomocne podczas automatyzacji zadań administracyjnych systemu.

Z kolei SFTP jest interaktywny, więc może odczytywać polecenia z plików. Chociaż może to być również przydatne w automatyzacji, może być bardziej nieporęczne, ponieważ wymaga zestawu poleceń innych niż zwykły skrypt powłoki.

Zwycięzca : SCP

Wznawianie przesyłania plików

SCP nie obsługuje tej funkcji bezpośrednio. To sprawia, że ​​program jest podatny na powtarzanie całych transferów w przypadku nieregularnych i sporadycznych połączeń. Tymczasem SFTP obsługuje go zarówno w wierszu poleceń CLI ze swoją -aflagą, jak i poprzez klienta wiersza poleceń za pomocą poleceń regeti reput.

Zwycięzca : SFTP

Którego należy użyć do przesyłania plików: SCP czy SFTP?

Chociaż mają swoje podobieństwa i różnice, stwierdzenie, że jeden jest lepszy od drugiego, byłoby niesprawiedliwe. Obydwa przesyłają pliki i mają podobne funkcje bezpieczeństwa, ponieważ działają na SSH. Ostatecznie wybrane narzędzie będzie oparte na tym, co najlepiej spełnia wymagania Twojego środowiska.

Użyj SCP do

  • Gdy chcesz przenieść pojedynczy plik lub katalog pomiędzy dwoma zdalnymi hostami.
  • Gdy chcesz zautomatyzować przesyłanie danych przez sieć.
  • Podczas pracy ze starszymi systemami typu UNIX bez obsługi protokołu SFTP.

Użyj SFTP dla

  • Podczas przesyłania wielu plików do wielu katalogów z jednego zdalnego hosta.
  • Gdy chcesz wchodzić w interakcję z systemem plików zdalnego hosta bez otwierania nowej sesji SSH.
  • Gdy potrzebujesz niezawodnego programu do przesyłania plików, który może działać nawet w sporadycznych warunkach sieciowych.

Mając to na uwadze, przesyłanie danych między dwoma systemami to dopiero pierwszy krok w zrozumieniu, w jaki sposób komputery komunikują się w sieci. Dowiedz się, skąd Twój komputer z systemem Linux wie, dokąd wysłać swoje dane, przeglądając nasz praktyczny przewodnik dotyczący rozpoznawania nazw DNS za pomocą polecenia dig .

Źródło obrazu: Alejandro Escamilla za pośrednictwem Unsplash . Wszystkie zmiany i zrzuty ekranu wykonał Ramces Red.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *