50% zniżki wszystkie plany, oferta czasowa. Od $2.48/mo
12 min pozostało
Serwery i system operacyjny

SCP z serwera zdalnego na lokalny: polecenia SCP w Linux

Ada Lovegood By Ada Lovegood 12 minut czytania
scp z serwera zdalnego na lokalny

Kiedy kiedyś chciałeś przesłać pliki przez sieć komputerów, czy spotkałeś się z wyzwaniami bezpieczeństwa? Nie możesz po prostu wrzucić plików do sieci i mieć nadzieję, że będą bezpieczne, jak Czerwony Kapturek! Musisz zastosować środki bezpieczeństwa. Powinieneś użyć protokołu transferu plików, który zabezpiecza twoje dane przed nieuprawnionym dostępem, podsłuchem sieci, naruszeniami bezpieczeństwa i innymi zagrożeniami.

Secure Copy Protocol (SCP) to zaawansowany protokół sieciowy transferu plików, który przesyła pliki między różnymi maszynami w sieci. W tym artykule poznamy ten protokół bliżej i zbadamy możliwości użycia SCP do transferu z maszyn zdalnych na lokalne.

Jak działa SCP? 

SCP używa SSH (Secure Shell) do przesyłania plików. Ale co to w ogóle oznacza? SSH to protokół sieciowy umożliwiający bezpieczny dostęp zdalny do serwerów. Wyposażony jest w metody autentykacji, szyfrowania i weryfikacji integralności przesyłanych danych. SCP opiera się na tych funkcjach bezpieczeństwa i metodach szyfrowania oferowanych przez SSH, aby bezpiecznie przesyłać pliki w sieci. Dzięki temu możesz używać SCP między serwerami zdalnymi i lokalnymi, mając pewność autentyczności i poufności swoich danych.

Używanie SCP do transferu plików; Dlaczego i jak? 

Przesyłanie plików z systemu zdalnego na lokalny i z lokalnego na zdalny to wydajny i elastyczny sposób transferu danych. SCP ma kilka istotnych zalet. Na przykład oferuje wyższą bezpieczność niż inne metody transferu plików, takie jak FTP. Innym ważnym atrybutem SCP jest prędkość. SCP jest zazwyczaj znacznie szybszy niż inne protokoły i świetnie sprawdza się do przesyłania plików między maszynami Linux.

Możesz przenosić pliki za pomocą SCP:

  • Z komputera lokalnego na zdalny
  • Z komputera zdalnego na lokalny
  • Z jednego komputera zdalnego na inny.

Przejdźmy teraz do praktycznego użycia składni SCP. Najpierw musisz skonfigurować SSH na obu komputerach. Warto jednak zauważyć, że SSH jest zwykle preinstalowany na maszynach Linux. Jeśli tak jest w Twoim przypadku, możesz pominąć te kroki.

1. Konfigurowanie SSH

Uruchom poniższe polecenie, aby zainstalować SSH:

sudo apt install openssh-client

2. Generowanie kluczy SSH

Urządzenie klienckie musi następnie nawiązać połączenie SSH. Do nawiązania bezpiecznego połączenia między maszyną klienta a serwerem niezbędny jest klucz prywatny i publiczny. To polecenie generuje dla Ciebie parę kluczy SSH:

ssh-keygen

Po uruchomieniu tego polecenia pojawi się prośba o nazwę pary kluczy i hasło (opcjonalne). Gdy para kluczy zostanie utworzona, musisz skopiować klucz publiczny na maszynę serwera.

Spójrzmy teraz na ogólną postać polecenia SCP:

scp [options] [source username@IP]:/[directory/file name] [destination username@IP]:/[directory]
  • [opcje] - Pierwszy nawiasem można zastąpić różnymi opcjami polecenia SCP, do których przejdziemy później.
  • [użytkownik@IP_źródła] - Zawiera nazwę użytkownika i adres IP komputera, z którego przesyłasz. Na przykład: [email protected]
  • [ścieżka/nazwa_pliku] - Zawiera lokalizację pliku, który chcesz przesłać.
  • [użytkownik@IP_docelowy] - Zawiera nazwę użytkownika i adres IP maszyny odbierającej.
  • [katalog] - Zamień to na żądaną lokalizację pliku na komputerze zdalnym.

Skoro już wiesz, jak wygląda ogólne polecenie, spójrzmy na wszystkie przydatne opcje SCP:

Opcja Przypadek użycia
-C
Ta opcja kompresuje pliki podczas przesyłania.
-c <cipher>
Możesz użyć tej opcji, aby określić konkretny szyfr. Na przykład: scp -c <aes128-ctr>.
-v
Ta opcja pokazuje krok po kroku przebieg procesu.
-l <limit in kilobytes>
Ta opcja pozwala ustawić limit maksymalnej przepustowości. Na przykład, poniższe polecenie ustawia przepustowość na 100 kb na sekundę: scp -l 100
-P
Ta opcja pozwala zmienić port SSH komputera zdalnego, do którego chcesz się połączyć. SCP domyślnie używa portu 22.
-S <nazwa programu>
Możesz użyć tej opcji, aby wybrać program do nawiązania połączenia.
-r
Kopiuj cały plik lub katalog rekursywnie.

Transfer plików za pomocą SCP 

Pamiętasz, że mamy trzy typy transferów za pomocą SCP? Teraz chcemy zbadać każdy typ transferu osobno. Ale najpierw zdefiniujmy cel. Mam zdjęcie kota na pulpicie komputera Linux i w pierwszym kroku chcę przenieść je na zdalny serwer Linux. Następnie przeniosę je z powrotem na mój komputer lokalny. Na koniec szczęśliwy kot przeniesie się między dwiema zdalnymi maszynami.

przenoszenie obrazu za pomocą scp

SCP z lokalnej na zdalną 

To polecenie przesyła plik z komputera lokalnego na serwer zdalny:

scp [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Aby użyć polecenia scp z hasłem, wpisz hasło do serwera zdalnego. To wszystko.

Przenoszenie plików ze źródła lokalnego na serwer zdalny za pomocą SCP

SCP ze zdalnej na lokalną

Aby odwrócić ten proces, nie musisz uzyskiwać dostępu do terminala serwera zdalnego. Na terminalu komputera lokalnego wpisz to polecenie:

scp [username]@[IP address of the remote machine]:[path/to/the/file] [path/to/the/location]

Jak widzisz, właśnie odwróciliśmy dwie części tego polecenia.

Przenoszenie plików z serwera zdalnego do źródła lokalnego za pomocą SCP

SCP między dwoma maszynami zdalnymi

Teraz przenieśmy kota między dwiema zdalnymi maszynami. Ten krok wymaga hasła do obu maszyn zdalnych, dlatego upewnij się, że je masz. Użyj tego polecenia, aby przenieść plik między dwoma komputerami zdalnymi:

scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]

przenoszenie plików za pomocą scp między dwoma zdalnymi systemami

Inne popularne polecenia SCP

Najczęstsze polecenia SCP to scp z maszyny zdalnej na lokalną, scp z maszyny lokalnej na zdalną oraz SCP między dwoma hostami zdalnymi. Ale na tym nie poprzestańmy i zbadajmy kilka innych przydatnych przykładów użycia scp Linux.

1. Rekurencyjne kopiowanie całego katalog

Wyobraź sobie, że chcesz przenieść cały katalog ze wszystkimi plikami w nim zawartymi. Przenoszenie tych plików jeden po jednym byłoby bardzo czasochłonne. Zamiast tego możesz użyć polecenia scp do przeniesienia wielu plików, aby skopiować katalog rekurencyjnie:

scp -r [Path/to/directory] [username of the remote server]@[Ip address]:/[path/to/the/location]

To może być przydatne w wielu scenariuszach:

  • Wdrażanie kodu: podczas wdrażania kodu lub aplikacji internetowych, możesz potrzebować przenieść cały katalog ze wszystkimi jego komponentami, takimi jak pliki i skrypty.
  • Kopia zapasowa i synchronizacja: Jeśli chcesz mieć kopię zapasową całego katalog lub chcesz zsynchronizować dwa katalogi na maszynie lokalnej i serwerze zdalnym, musisz skopiować wszystko rekurencyjnie.
  • Migracja Systemu: Kluczowym zadaniem migracji systemów jest skopiowanie i przeniesienie każdej ważnej informacji. Polecenie SCP z opcją -r upewni się, że niczego nie przegapisz podczas przenoszenia.

2. Ograniczanie przepustowości

Jeśli chcesz kontrolować szybkość przenoszenia danych, możesz użyć tego polecenia:

scp -l <limit> [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Dlaczego miałbyś to robić?
W tych dwóch scenariuszach możesz użyć składni scp Linux, aby ustawić limit na przepustowość:

  • Przeciążenie sieci: Jeśli sieć jest wysoko obciążona, ograniczenie przepustowości za pomocą scp może pomóc w lepszym rozdzieleniu zasobów sieciowych. Ograniczenie przepustowości za pomocą SCP zapewnia, że inne zadania związane z siecią działają bez problemów. Jest to również ważne przy przesyłaniu plików przez sieć współdzieloną, gdzie proces może utrudnić aktywność sieciową innym użytkownikom.
  • Transfery w tle: Podczas transferów SCP w tle, takich jak automatyczne kopie zapasowe lub procesy synchronizacji, istnieje szansa, że te zadania zużyją zasoby sieciowe. W takim przypadku możesz ograniczyć przepustowość tych procesów transferu, aby lepiej zarządzać zasobami.

3. Uzyskiwanie szczegółowego dziennika

Użycie opcji -v z SCP da ci szczegółowy dziennik dodatkowych informacji o procesie transferu. Możesz użyć poniższego polecenia, aby uzyskać szczegółowe informacje zwrotne:

scp -v [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Dlatego powinieneś pamiętać i używać to polecenie:

  • Rozwiązywanie problemów: ta opcja pokazuje postęp transferu w akcji. Możesz zobaczyć informacje, takie jak rozmiar pliku i procent ukończenia. Daje ci też komunikaty o błędach i ostrzeżenia. Połączenie tych danych pozwala monitorować i rozwiązywać problemy z procesem transferu w razie potrzeby.

4. Określanie portu SSH

Korzystając ze składni Linux scp z opcją -P, możesz zmienić port SSH. Oto polecenie, które to umożliwia:

scp -P [port number] [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Może to być przydatne w następujących sytuacjach:

  • Konfiguracja Firewall: Jeśli domyślny port SSH jest zablokowany lub chcesz ukryć usługę SSH przed potencjalnymi zagrożeniami, możesz zmienić port SSH.

Czy istnieją jakieś alternatywy dla SCP?

SCP jest szybki i bezpieczny, a znając prawidłową składnię Linux scp i podstawy rozwiązywania problemów, może być jedynym narzędziem, które potrzebujesz. Nie ma jednak nic złego w zapoznaniu się z jego alternatywami.

1. rsync

rsync to wszechstronne narzędzie do transferu plików ze zaawansowanymi możliwościami synchronizacji, transferami przyrostowymi oraz kopiowaniem zdalne i lokalne. Może również zmniejszyć użycie pasma transferując tylko różnice między plikami źródłowymi i docelowymi. Kolejną zaletą rsync jest możliwość wznowienia przerwanych transferów z punktu, w którym się zatrzymały.

Zalety rsync

  • Wydajna synchronizacja plików i katalogów.
  • Obsługuje algorytm delta-transfer, zmniejszając ilość przesyłanych danych.
  • Możliwość wznowienia przerwanych transferów.

rsync Wady

  • Wymaga zainstalowania rsync na systemach źródłowym i docelowym.
  • Wymaga większej konfiguracji i więcej opcji poleceń niż scp.

2. SFTP (Protokół transferu plików SSH)

SFTP zapewnia bezpieczny sposób transferu plików przez SSH. Oferuje funkcjonalność podobną do FTP, ale działa na szyfrowanym połączeniu SSH, tak jak SCP. W niektórych aspektach jednak przewagi SFTP przewyższają przewagi SCP. SCP nie może generować list katalogów, tworzyć ani usuwać katalogów, itd. SFTP może wykonywać wszystkie te zadania.

Zalety SFTP

  • Bezpieczny transfer plików z szyfrowaniem.
  • Możliwości zdalnego zarządzania plikami.
  • Szeroka dostępność na większości systemów Linux i Unix.

Wady SFTP

  • Składnia poleceń i użycie różnią się od tradycyjnego FTP.
  • Może mieć ograniczoną obsługę w niektórych systemach wbudowanych lub urządzeniach.

3. FTP (Protokół Transferu Plików)

FTP to szeroko stosowany standardowy protokół transferu plików. Operuje w modelu klient-serwer i oferuje podstawową funkcjonalność transferu plików.

Zalety FTP

  • Szeroka obsługa na różnych platformach.
  • Dostępne znane klienty wiersza polecenia i graficzne.

Wady FTP

  • Brak szyfrowania i niższa bezpieczeństwo w porównaniu z scp i sftp.
  • Może wymagać dodatkowej konfiguracji zapory sieciowej do nawiązania połączeń.
  • Uwierzytelnianie w postaci zwykłego tekstu.

Podsumowując, podczas gdy scp jest prostym i niezawodnym wyborem do bezpiecznego transferu plików przez SSH, alternatywy takie jak rsync, sftp i FTP mogą oferować dodatkowe funkcje i elastyczność w zależności od konkretnych wymagań.
Jak wybrać właściwy? Weź pod uwagę bezpieczeństwo, potrzeby synchronizacji, łatwość obsługi oraz zgodność z Twoimi systemami i protokołami. Na przykład, jeśli bezpieczeństwo i poufność danych są najważniejsze przy transferze plików, FTP nie jest dobrym wyborem.

Wnioski 

SCP to szybkie i bezpieczne narzędzie do transferu plików między komputerami. Możesz używać SCP do przesyłania z serwera zdalnego na komputer lokalny, z lokalnego na zdalny, a nawet między dwoma systemami zdalnymi. Choć istnieją alternatywy takie jak rsync, SCP je prześciga pod wieloma względami, zwłaszcza w kwestii bezpieczeństwa i szybkości. W tym wpisie omówiliśmy SCP, jego zastosowania, alternatywy i udostępniliśmy ściągawkę z najczęściej używaną składnią.

Często zadawane pytania 

Czy powinienem być świadomy jakichś zagrożeń bezpieczeństwa podczas używania SCP ze zdalnej na lokalną?  

SCP to dość bezpieczne narzędzie i nie musisz się obawiać zagrożeń bezpieczeństwa podczas jego używania. Zawsze jednak warto zastosować dodatkowe środki bezpieczeństwa, jakie możesz.

Jakie są najczęstsze błędy występujące podczas używania SCP ze zdalnej na lokalną? 

Podczas transferu plików z serwera zdalnego na komputer lokalny za pomocą SCP użytkownicy mogą napotkać kilka typowych błędów. Oto dwa z nich:

  1. Brak takiego pliku lub katalogu: ten błąd pojawia się, gdy nie podałeś właściwego numeru portu, ustawienia uprawnień do pliku są nieprawidłowe lub informacje logowania są błędne.
  2. Weryfikacja klucza hosta nie powiodła się: ten błąd pojawiają się, gdy klucz hosta zmienił się z powodu aktualizacji serwera. Klucz hosta potwierdza, że wcześniej łączyłeś się z tym serwerem. Gdy weryfikacja się nie powiedzie, oznacza to, że tożsamość serwera uległa zmianie. Ten błąd chroni Cię przed połączeniem się z sfałszowanym serwerem.

Jak mogę używać SCP do przesyłania plików między systemami zdalnymi?

Aby pomyślnie transferować pliki między systemami za pomocą SCP, oba komputery muszą być dostępne przez SSH. Potrzebujesz także adresu IP i hasła do maszyn zdalnych. Reszta to już tylko użycie właściwej komendy SCP:

scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]

Po wpisaniu tej komendy zostaniesz poproszony o podanie hasła do serwerów. Po tym Twój plik będzie przesyłany.

Udostępnij

Więcej z bloga

Czytaj dalej.

Okładka artykułu o najlepszych aplikacjach self-hosted do uruchomienia z Cosmos Cloud, z panelami aplikacji wokół pulpitu Cosmos.
Serwery i system operacyjny

Najlepsze aplikacje self-hosted do uruchomienia z Cosmos Cloud: pliki, multimedia, hasła, automatyzacja i nie tylko!

Maybe masz już skonfigurowany Cosmos Cloud i chcesz zobaczyć, jakie aplikacje dobrze z nim współpracują, a może jeszcze nie zdecydowałeś się na Cosmos i po prostu chcesz sprawdzić, jak wpasowuje się w twój przepływ pracy

Nick SrebrnyNick Srebrny Czytanie w 16 minut
Portainer vs Cosmos Cloud do zarządzania aplikacjami Docker: okładka z diagramem konfiguracji hybrydowej oraz blokami ops i access.
Serwery i system operacyjny

Portainer vs Cosmos Cloud: Które rozwiązanie lepiej sprawdzi się do zarządzania aplikacją Docker?

Jeśli znasz już Docker i szukasz wygodniejszego sposobu na obsługę rosnącego stosu aplikacji, oto krótka odpowiedź na pytanie Portainer vs Cosmos Cloud. Portainer to mocniejszy wybór do bezpośred

Nick SrebrnyNick Srebrny 14 minut czytania
Grafika porównawcza Cosmos Cloud vs CasaOS vs Umbrel pokazująca trzy ścieżki self-hostingu w ramach jednej abstrakcyjnej sieci chmurowej.
Serwery i system operacyjny

Cosmos Cloud vs CasaOS vs Umbrel: Która platforma self-hosted pasuje do Twojego środowiska?

Krótka odpowiedź: CasaOS to nadal najłatwiejszy punkt startowy, Umbrel ma najbardziej dopracowany i spójny interfejs, a Cosmos Cloud zaczyna mieć sens, gdy chcesz mieć większą kontrolę nad dome

Nick SrebrnyNick Srebrny 11 minut czytania

Gotowy do wdrożenia? Od 2,48 USD/miesiąc.

Niezależna chmura od 2008 roku. AMD EPYC, NVMe, 40 Gbps. Zwrot pieniędzy w ciągu 14 dni.