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.
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.
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ą -a
flagą, jak i poprzez klienta wiersza poleceń za pomocą poleceń reget
i 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