50% zniżki wszystkie plany, ograniczony czas. Rozpoczęcie o godz $2.48/mo
Pozostało 12 minut
Serwery i system operacyjny

SCP ze zdalnego do lokalnego – polecenia SCP systemu Linux

Ada Lovegood By Ada Lovegood 12 minut czytania
scp ze zdalnego na lokalny

Czy kiedykolwiek chciałeś przesłać pliki przez sieć komputerów i napotkałeś wyzwania związane z bezpieczeństwem? Cóż, nie możesz po prostu wyrzucić swoich plików do sieci i życzyć sobie, aby były bezpieczne, jak Czerwony Kapturek! Potrzebujesz środków bezpieczeństwa. Powinieneś używać protokołu przesyłania plików, który zapewnia ochronę danych przed nieautoryzowanym dostępem, podsłuchiwaniem sieci, naruszeniami bezpieczeństwa danych i innymi rodzajami zagrożeń.

Protokół Secure Copy Protocol (SCP) to potężny protokół sieciowy do przesyłania plików, który przesyła pliki między różnymi maszynami w sieci. W tym poście na blogu bliżej poznamy ten protokół i zbadamy potencjał wykorzystania SCP na komputerach zdalnych i lokalnych.

Jak działa SCP? 

SCP używa protokołu SSH (Secure Shell) do przesyłania plików. Ale co to w ogóle oznacza? SSH to protokół sieciowy zapewniający bezpieczny zdalny dostęp do serwerów. Jest wyposażony w metody uwierzytelniania, szyfrowania i sprawdzania integralności przesyłanych plików danych. SCP opiera się na tych funkcjach zabezpieczeń i metodach szyfrowania zapewnianych przez SSH w celu bezpiecznego przesyłania plików przez sieć. W ten sposób możesz wykorzystywać SCP ze zdalnych do lokalnych serwerów w celu bezpiecznego połączenia i przesyłania plików, mając pewność co do autentyczności i poufności swoich danych.

Używanie SCP do przesyłania plików; Dlaczego i jak? 

Używanie protokołu SCP ze zdalnego do lokalnego i SCP lokalnego do zdalnego to wydajny i elastyczny sposób przesyłania plików. SCP oferuje kilka głównych korzyści w zakresie przesyłania plików. Na przykład SCP oferuje solidniejsze środki bezpieczeństwa niż inne metody przesyłania plików, takie jak FTP. Kolejnym aspektem, w którym SCP odbiega od innych protokołów, jest prędkość. SCP jest zwykle znacznie szybszy niż inne protokoły, takie jak SFTP, i jest doskonałym narzędziem do przesyłania plików między maszynami z systemem Linux.

Możesz przenosić pliki za pomocą SCP:

  • Z komputera lokalnego na komputer zdalny
  • Z komputera zdalnego na komputer lokalny
  • Ze zdalnej maszyny na inną zdalną maszynę.

Przejdźmy teraz do faktycznego używania składni Linux SCP do przesyłania plików. Pierwszą rzeczą, którą musisz zrobić, to skonfigurować SSH na obu komputerach. Należy jednak pamiętać, że protokół SSH jest zwykle instalowany na wszystkich komputerach z systemem Linux. Jeśli więc tak jest w Twoim przypadku, możesz pominąć te kroki.

1. Konfiguracja SSH

Uruchom następujące polecenie, aby zainstalować SSH:

sudo apt install openssh-client

2. Generowanie kluczy SSH

Urządzenie klienckie musi następnie nawiązać połączenie SSH. Bezpieczne połączenie między maszynami klienckimi i serwerowymi wymaga ustanowienia klucza prywatnego i klucza publicznego. To polecenie tworzy dla Ciebie parę kluczy SSH:

ssh-keygen

podczas uruchamiania tego polecenia prawdopodobnie zostaniesz poproszony o podanie nazwy pary kluczy i hasła (jest to opcjonalne). Następnie po utworzeniu pary kluczy należy skopiować klucz publiczny na serwer.

Przyjrzyjmy się teraz ogólnej formie polecenia SCP:

scp [options] [source username@IP]:/[directory/file name] [destination username@IP]:/[directory]
  • [opcje] > Ten pierwszy nawias można zastąpić różnymi opcjami polecenia SCP, do czego przejdziemy później.
  • [źródłowa nazwa użytkownika@IP] > Ten nawias należy zastąpić nazwą użytkownika i adresem IP komputera lokalnego. Na przykład: [email protected]
  • [nazwa katalogu/pliku] > Ten nawias należy zastąpić lokalizacją pliku, który chcesz wysłać.
  • [docelowa nazwa użytkownika@IP] > Ten nawias należy zastąpić nazwą użytkownika i adresem IP urządzenia odbierającego.
  • [katalog] > Zastąp tę sekcję żądaną lokalizacją pliku na zdalnym komputerze.

Teraz wiesz, jak wygląda ogólne polecenie. Przyjrzyjmy się wszystkim przydatnym opcjom polecenia SCP:

Opcja Przypadek użycia
-C
Korzystając z tej opcji, SCP kompresuje Twoje pliki podczas ich przesyłania.
-c <szyfr>
Możesz użyć tej opcji, aby poinformować SCP, aby użył określonego szyfru. Na przykład scp -c <aes128-ctr>.
-v
Ta opcja umożliwia przeprowadzenie procesu krok po kroku.
-l <limit w kilobajtach>
Ta opcja umożliwia ustawienie limitu maksymalnej przepustowości. Na przykład poniższy przykład ustawia wykorzystanie przepustowości na 100 kb na sekundę: scp -l 100
-P
Korzystając z tej opcji, możesz zmienić port ssh zdalnego serwera, z którym chcesz się połączyć. SCP domyślnie używa portu 22.
-S <nazwa programu>
Możesz użyć tej opcji, aby wybrać program do połączenia.
-r
Skopiuj rekurencyjnie cały plik lub katalog.

Przesyłanie plików za pomocą SCP 

Pamiętacie więc, że mamy trzy rodzaje transferów z SCP, prawda? Teraz chcemy zbadać każdy rodzaj transferu w sposób zależny. Ale zdefiniujmy misję, zanim zaczniemy. Mam to zdjęcie kota na pulpicie mojego komputera z systemem Linux i w pierwszym kroku chcę je przenieść na zdalny serwer z systemem Linux. Następnie przeniosę go z powrotem na mój komputer lokalny. I na koniec, szczęśliwy kot będzie przemieszczał się pomiędzy dwiema zdalnymi maszynami.

przesyłanie obrazu za pomocą scp

SCP z lokalnego na zdalny 

Użycie tego polecenia przeniesie nasz 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, należy wprowadzić hasło zdalnego serwera. I gotowe.

Używanie SCP do przesyłania plików z lokalnego do zdalnego

SCP ze zdalnego do lokalnego

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

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

Jak widać, właśnie zamieniliśmy dwie części tego polecenia.

Używanie SCP do przesyłania plików ze zdalnego do lokalnego

SCP pomiędzy dwoma zdalnymi maszynami

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

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]

używanie scp do przesyłania plików pomiędzy dwoma zdalnymi systemami

Inne popularne polecenia SCP

Najpopularniejsze polecenia SCP to scp ze zdalnego na lokalny, scp z lokalnego na zdalny i SCP między dwoma zdalnymi hostami. Ale nie poprzestawajmy na tym i zbadajmy inny przydatny przykład Linux scp.

1. Rekurencyjne kopiowanie całego katalogu

Wyobraź sobie, że chcesz przenieść cały katalog ze wszystkimi zawartymi w nim plikami. Przesyłanie tych plików jeden po drugim byłoby naprawdę czasochłonne. Zamiast tego możesz użyć polecenia scp multiple files, aby rekursywnie skopiować katalog:

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

Może to być przydatne w wielu scenariuszach:

  • Wdrożenie kodu: podczas wdrażania kodu lub aplikacji internetowych może zaistnieć potrzeba przesłania całego katalogu ze wszystkimi jego komponentami, takimi jak pliki i skrypty.
  • Kopia zapasowa i synchronizacja: JEŚLI chcesz mieć kopię zapasową całego katalogu lub chcesz zsynchronizować dwa katalogi na komputerze lokalnym i serwerze zdalnym, musisz skopiować wszystko rekurencyjnie.
  • Migracja systemu: Kluczowym zadaniem podczas migracji systemu jest skopiowanie i przesłanie każdej istotnej informacji. Użycie polecenia SCP z opcją -r sprawi, że niczego nie przeoczysz w procesie przeprowadzki.

2. Ograniczanie wykorzystania przepustowości

Jeśli chcesz kontrolować szybkość przesyłania danych, możesz użyć następującego polecenia:

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

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

  • Przeciążenie sieci: Jeśli Twoja sieć jest bardzo przeciążona, ograniczenie przepustowości za pomocą scp może pomóc w dystrybucji zasobów sieciowych. Ograniczenie przepustowości za pomocą SCP gwarantuje, że inne zadania związane z siecią będą działać bez żadnych problemów. Jest to również ważne w przypadku przesyłania plików przez współdzieloną sieć, ponieważ proces ten może utrudniać aktywność sieciową innym użytkownikom.
  • Transfery w tle: Podczas transferów SCP w tle, takich jak automatyczne kopie zapasowe lub procesy synchronizacji, istnieje ryzyko, że zadania te pochłoną zasoby sieciowe. W takim przypadku możesz ograniczyć przepustowość tych procesów przesyłania, aby lepiej zarządzać zasobami.

3. Uzyskanie szczegółowego dziennika

Użycie opcji -v z SCP da Ci szczegółowy dziennik dodatkowych informacji o procesie transferu. Aby uzyskać szczegółowe opinie i informacje, możesz użyć poniższego polecenia:

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

Oto dlaczego musisz pamiętać i używać tego polecenia:

  • Rozwiązywanie problemów: użycie tej opcji pokazuje postęp przelewu w akcji. Możesz zobaczyć takie informacje, jak rozmiar pliku i procent ukończenia. Wyświetla także komunikaty o błędach i ostrzeżenia. Połączenie tych danych pozwala monitorować i w razie potrzeby rozwiązywać problemy związane z procesem transferu.

4. Określanie portu SSH

Umożliwia to użycie składni Linux scp z opcją -P zmień port SSH. Oto polecenie, które pozwala to zrobić:

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

Może to być przydatne dla:

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

Czy są jakieś alternatywy dla SCP?

SCP jest szybkie i bezpieczne, a dzięki znajomości właściwej składni Linux scp i wiedzy dotyczącej rozwiązywania problemów może być jedynym narzędziem, którego potrzebujesz. Jednak nie ma nic złego w przejrzeniu jego alternatyw.

1. rsync

rsync to wszechstronne narzędzie do przesyłania plików z zaawansowanymi możliwościami synchronizacji, transferami przyrostowymi oraz kopiowaniem zdalnym i lokalnym. Może również zmniejszyć wykorzystanie przepustowości, przesyłając jedynie różnice między plikami źródłowymi i docelowymi. Kolejną wielką zaletą korzystania z rsync jest to, że może on wznawiać przerwane przesyłanie plików od miejsca, w którym zostało przerwane, i kontynuować proces.

rsync Zalety

  • Efektywna synchronizacja plików i katalogów.
  • Obsługuje algorytm transferu delta, redukując transfer danych.
  • Może wznowić przerwane transfery.

rsync Wady

  • Wymaga zainstalowania rsync zarówno w systemie źródłowym, jak i docelowym.
  • Wymaga więcej opcji konfiguracji i poleceń w porównaniu do scp.

2. SFTP (protokół przesyłania plików SSH)

SFTP zapewnia bezpieczny sposób przesyłania plików przez SSH. Oferuje podobną funkcjonalność jak FTP, ale działa poprzez szyfrowane połączenie SSH, podobnie jak SCP. Jednak w niektórych obszarach zalety SFTP przewyższają zalety SCP. SCP nie może generować list katalogów, tworzyć ani usuwać katalogów itp. SFTP może jednak wykonywać wszystkie te zadania.

Zalety SFTP

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

Wady protokołu SFTP

  • Składnia i sposób użycia poleceń różnią się od tradycyjnego protokołu FTP.
  • Może mieć ograniczone wsparcie w niektórych systemach lub urządzeniach wbudowanych.

3. FTP (protokół przesyłania plików)

FTP to szeroko stosowany standardowy protokół przesyłania plików. Działa w modelu klient-serwer i oferuje podstawową funkcjonalność przesyłania plików.

Profesjonaliści FTP

  • Szerokie wsparcie na różnych platformach.
  • Dostępne są znane klienty wiersza poleceń i graficzne.

Wady FTP

  • Brakuje szyfrowania/mniej bezpieczne w porównaniu do scp i sftp.
  • Może wymagać dodatkowej konfiguracji zapory sieciowej w celu nawiązania połączeń.
  • Uwierzytelnianie zwykłym tekstem.

Ogólnie rzecz biorąc, chociaż scp jest prostym i niezawodnym wyborem do bezpiecznego przesyłania 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 więc podjąć decyzję, który wybrać? Należy wziąć pod uwagę takie czynniki, jak bezpieczeństwo, potrzeby synchronizacji, łatwość użycia oraz zgodność z systemami i protokołami. Na przykład, jeśli bezpieczeństwo i poufność danych są najważniejszymi czynnikami podczas przesyłania plików, FTP nie będzie dobrym wyborem.

Wniosek 

SCP to szybkie i bezpieczne narzędzie do przesyłania plików pomiędzy komputerami. Możesz używać scp ze zdalnego do lokalnego, z lokalnego do zdalnego, a nawet między dwoma zdalnymi systemami do przesyłania plików. I choć istnieją alternatywy dla SCP, które wykonują odpowiednią pracę, jak rsync, przewyższa je pod wieloma względami, szczególnie pod względem bezpieczeństwa i szybkości. W tym poście na blogu omówiliśmy SCP, jego przypadki użycia i alternatywy, a także udostępniliśmy ściągawkę ułatwiającą dostęp do często używanej składni.

Często zadawane pytania 

Czy są jakieś obawy związane z bezpieczeństwem, o których powinienem wiedzieć podczas korzystania z SCP ze zdalnego na lokalny?  

SCP jest raczej bezpiecznym narzędziem i nie musisz się martwić o zagrożenia bezpieczeństwa podczas jego używania. Zawsze jednak zaleca się podjęcie wszelkich dodatkowych środków bezpieczeństwa, jakie możesz.

Jakie są typowe błędy występujące podczas używania SCP zdalnie na lokalnie? 

Używając protokołu SCP do przesyłania plików ze zdalnego serwera na komputer lokalny, użytkownicy mogą napotkać kilka typowych błędów. Oto dwa najczęstsze błędy podczas używania SCP zdalnie na lokalnie:

  1. Brak takiego pliku lub katalogu: ten błąd występuje, gdy nie określono prawidłowego numeru portu, ustawienia uprawnień do plików są nieprawidłowe lub gdy dane logowania są nieprawidłowe.
  2. Weryfikacja klucza hosta nie powiodła się: ten komunikat o błędzie pojawia się, gdy klucz hosta został zmieniony z powodu aktualizacji serwera. Klucz hosta pokazuje, że łączyłeś się już wcześniej z tym serwerem, a gdy weryfikacja klucza hosta nie powiedzie się, oznacza to, że tożsamość serwera uległa zmianie. Ten błąd próbuje chronić Cię przed połączeniem się z serwerem oszustwa.

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

Aby pomyślnie przesyłać pliki pomiędzy systemami przy użyciu SCP, oba komputery powinny być dostępne poprzez SSH. potrzebny jest także adres IP i hasło zdalnych komputerów. Reszta to po prostu użycie odpowiedniego polecenia 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 tego polecenia zostaniesz poproszony o podanie hasła do serwerów. Następnie Twój plik zostanie przesłany.

Udział

Więcej z bloga

Czytaj dalej.

Najlepsze aplikacje hostowane samodzielnie, które można uruchomić w chmurze Cosmos. Obraz okładki z panelami aplikacji wokół pulpitu nawigacyjnego Cosmos.
Serwery i system operacyjny

Najlepsze aplikacje hostowane samodzielnie, które można uruchomić w chmurze Cosmos: pliki, multimedia, hasła, automatyzacja i wiele więcej!

Być może skonfigurowałeś Cosmos Cloud i teraz chcesz zobaczyć, jakie aplikacje dobrze z nią pasują, a może nawet jeszcze nie zdecydowałeś się na Cosmos i po prostu chcesz zobaczyć, jak dobrze pasuje do Twojej pracy.

Nicka SilveraNicka Silvera 16 minut czytania
Portainer vs Cosmos Cloud do zarządzania aplikacjami Docker z hybrydowym diagramem konfiguracji i neonowymi operacjami a blokami dostępu.
Serwery i system operacyjny

Portainer vs Cosmos Cloud: najlepsze dopasowanie do zarządzania aplikacjami Docker

Jeśli znasz już Dockera i chcesz po prostu czystszego sposobu uruchamiania rosnącego stosu aplikacji, oto krótka odpowiedź na pytanie Portainer vs Cosmos Cloud. Portainer to mocniejszy wybór w przypadku reżyserii

Nicka SilveraNicka Silvera 14 minut czytania
Grafika przedstawiająca trzy hostowane ścieżki w jednym abstrakcyjnym świecie sieci w chmurze.
Serwery i system operacyjny

Cosmos Cloud vs CasaOS vs Umbrel: która platforma samoobsługowa pasuje do Twojej konfiguracji?

Krótka odpowiedź jest taka, że ​​CasaOS jest nadal najłatwiejszym miejscem na rozpoczęcie, Umbrel ma najczystszy, starannie wyselekcjonowany styl, a Cosmos Cloud ma więcej sensu, gdy chcesz mieć ściślejszą kontrolę nad domeną

Nicka SilveraNicka Silvera 11 minut czytania

Gotowy do wdrożenia? Od 2,48 USD/mies.

Niezależna chmura, od 2008. AMD EPYC, NVMe, 40 Gbps. 14-dniowy zwrot pieniędzy.