12 scp command examples securely transfer files linux
Ten samouczek wyjaśnia protokół bezpiecznego kopiowania lub polecenie SCP używane do bezpiecznego kopiowania plików w systemie Linux i Unix wraz ze składnią i przykładami:
W tym artykule omówimy polecenie SCP (Secure Copy Protocol), które służy do przesyłania plików. Co to jest i jak działa, zobaczymy na kilku przykładach. Spróbujmy więc najpierw zrozumieć, czym jest polecenie SCP.
Czego się nauczysz:
Co to jest polecenie SCP?
SCP (Secure Copy Protocol) to protokół sieciowy używany do bezpiecznego przesyłania plików między hostami w sieci komputerowej. Używając tego narzędzia wiersza poleceń w systemach Linux i Unix, możesz przesyłać pliki z hosta lokalnego do hosta zdalnego lub z hosta zdalnego do systemu lokalnego lub między dwoma hostami zdalnymi.
[wizerunek źródło ]
SCP zapewnia autentyczność, szyfrowanie i poufność danych poprzez wykorzystanie mechanizmu SSH (Secure Shell) do przesyłania plików. Zatem przesyłane dane są chronione przed atakami szpiegującymi. Klienci mogą przesyłać i pobierać pliki i katalogi do iz serwera przy użyciu tego protokołu. Do uwierzytelnienia wymagane jest hasło lub klucze. Domyślnym portem dla SCP jest port TCP 22.
Zaletą protokołu SCP jest to, że nie trzeba rozpoczynać sesji FTP ani logować się do zdalnych hostów w celu przesłania plików.
Składnia protokołu SCP
# 1) Do kopiowania pliku z lokalnego do zdalnego hosta
scp [options] SourceFileName UserName@TargetHost:TargetPath
Jest to bardzo podstawowa składnia polecenia SCP, która kopiuje plik źródłowy z bieżącego hosta do ścieżki docelowej na hoście docelowym przy użyciu konta użytkownika. Zazwyczaj działa podobnie do polecenia copy cp.
# 2) Do kopiowania ze zdalnego hosta do lokalnego
Do kopiowania pliku:
scp [options] UserName@SourceHost:SourceFilePath TargetFileName
Lub, po prostu pobierz plik:
scp [options] UserName@SourceHost:SourceFilePath
Do kopiowania folderu (rekurencyjnie):
scp -r UserName@SourceHost:SourceDirectoryPath TargetFolderName
Jeśli zdalny host używa portu innego niż domyślny port 22, numer portu musi być wyraźnie określony w poleceniu z opcją -P.
# 3) Kopiowanie z jednego komputera zdalnego na inny komputer zdalny
scp [options] UserName@SourceHost:SourcePath UserName@TargetHost:TargetPath
Podczas kopiowania plików z jednego komputera zdalnego na inny ruch nie przechodzi przez ten komputer. Ta operacja odbywa się bezpośrednio między dwoma zdalnymi serwerami.
# 4) Kopiowanie wielu plików
Aby skopiować wiele plików z hosta lokalnego do zdalnego hosta:
scp file1 file2 UserName@TargetHost:TargetDirectoryPath
Aby skopiować wiele plików ze zdalnego hosta do bieżącego katalogu hosta lokalnego:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}
Opcje używane z poleceniem SCP
Najczęściej używane opcje z poleceniem SCP są wymienione poniżej:
- -DO : C, tutaj oznacza włącz kompresję. Używając tej opcji, zostanie włączona kompresja, a prędkość transferu wzrośnie podczas kopiowania. Automatycznie włączy kompresję u źródła i dekompresję u celu.
- -do: c oznacza szyfr. Domyślnie SCP używa „AES-128” do szyfrowania plików. Jeśli chcesz zmienić szyfr, musisz użyć opcji -c, po której następuje nazwa szyfru.
- -ja : i oznacza plik identyfikacyjny lub klucz prywatny. Ogólnie w środowiskach Linux wybierane jest uwierzytelnianie oparte na kluczach. Możemy więc konkretnie wspomnieć o pliku klucza prywatnego lub pliku tożsamości, używając opcji -i.
- -l: l oznacza ograniczenie przepustowości. Dzięki tej opcji możesz ustawić maksymalną przepustowość, która ma być używana. Jest w kb / s.
- -B: Ta opcja służy do korzystania z trybu wsadowego podczas kopiowania.
- -F: Ta opcja jest używana do używania innego pliku ssh_config podczas kopiowania w sytuacjach, w których do łączenia się z systemami Linux trzeba używać różnych sieci. W takich scenariuszach należy przypisać zastępczy plik konfiguracyjny SSH dla poszczególnych użytkowników.
- -P: Jeśli numer portu ssh hosta docelowego różni się od domyślnego numeru portu 22, musisz podać konkretny numer portu, używając opcji -P.
- -p: Ta opcja służy do zachowania uprawnień do plików, modyfikacji i czasów dostępu podczas kopiowania.
- -q: Ta opcja spowoduje wykonanie polecenia SCP w trybie cichym. Spowoduje to wyłączenie miernika postępu i nie będzie pokazywać postępu transferu, ostrzeżeń ani komunikatów diagnostycznych ssh na ekranie terminala Linux.
- -r: Opcja -r służy do rekurencyjnego kopiowania plików i katalogów. Na przykład, jeśli chcesz skopiować cały folder (wraz z zawartością wewnątrz folderu) na maszynę docelową, musisz użyć opcji -r.
- -S: Ta opcja służy do określania programu, który ma być używany do łączenia.
- -v: v oznacza gadatliwy. Ta opcja pokaże krok po kroku postęp wykonywania polecenia SCP na ekranie terminala. Jest to naprawdę pomocne w debugowaniu.
Przykłady poleceń SCP
Pozwól nam zrozumieć, jak używać polecenia SCP za pomocą przykładów:
Przykład 1: do kopiowania z lokalnego do zdalnego hosta
scp -v lockfile.txt kaushapx@10.172.80.167: /home/cpf657/kaushapx/test1
W powyższym przykładzie
- -v opcja jest używana jako opcja szczegółowa, aby zobaczyć szczegóły wyniku tego polecenia na terminalu Linux. Korzystając z pełnych informacji wyjściowych, możesz dokładnie dowiedzieć się, co dzieje się w tle, gdy polecenie jest wykonywane. To pomaga w debugowaniu.
- Lockfile.txt to nazwa pliku źródłowego, który chcemy przesłać do zdalnego hosta.
- Przykładem nazwy użytkownika jest Kaushapx. Korzystając z tego konta użytkownika, bezpiecznie skopiujemy plik do zdalnego hosta.
- 10.172.80.167 to przykład adresu IP docelowego zdalnego hosta, na który chcemy przesłać plik.
- / home / cpf657 / kaushapx / test1 to przykład bezwzględnej ścieżki, w której chcemy umieścić ten przesłany plik.
Poniższe zrzuty ekranu pokazują wykonanie powyższego polecenia SCP.
konwersja char na int c ++
Przykład 2: do kopiowania ze zdalnego hosta do systemu lokalnego:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/test/parent/directory1/DemoFile.txt /home/tpf655/kaushapx
Przykład 3: do kopiowania wielu plików do zdalnego hosta:
scp DemoFile.txt log.xml kaushapx@10.172.80.167:/home/cpf657/kaushapx/test
Przykład 4: do kopiowania plików w dwóch zdalnych systemach:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
Przykład 5: do rekurencyjnego kopiowania plików i katalogów (przy użyciu opcji -r):
Załóżmy, że mam folder o nazwie „test” na hoście lokalnym i ten folder zawiera cztery pliki. Chcę skopiować cały folder do innego folderu o nazwie „test1” znajdującego się na zdalnym hoście.
Użyję następującego polecenia:
scp -r test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Przykład 6: do zwiększenia szybkości kopiowania poprzez włączenie kompresji (za pomocą opcji -C):
Prześlijmy ten sam folder, co w przykładzie 5, ale tym razem włączając kompresję:
scp -r -C test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Przykład 7: do ograniczenia przepustowości podczas kopiowania (za pomocą opcji -l):
Kontynuujmy z tą samą opcją. Tym razem użyjemy opcji -l i określimy przepustowość, powiedzmy 500. Pamiętaj, przepustowość, którą tu wstawiliśmy, jest w Kbit / s.
Przykład 8: do określenia innego portu ssh podczas kopiowania (przy użyciu opcji -P):
Jeśli zdalny serwer, na którym kopiujesz plik, używa innego portu niż domyślny port 22, musisz jawnie podać numer portu w poleceniu SCP, używając opcji -P. Na przykład, jeśli port ssh zdalnego serwera to 2022, w poleceniu SCP wymienisz -P 2022.
scp -P 2022 console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
Przykład 9: do zachowania uprawnień do plików, modyfikacji i czasów dostępu podczas kopiowania (przy użyciu opcji -p):
scp -p console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Przykład 10: do kopiowania plików w trybie cichym (przy użyciu opcji -q):
scp -q console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Przykład 11: do identyfikacji plików w SCP podczas kopiowania (przy użyciu opcji -i):
jak napisać przypadek testowy w arkuszu excel
W powyższym przykładzie my_private_key.pem jest plikiem tożsamości lub plikiem klucza prywatnego.
Przykład 12: za użycie innego szyfru podczas kopiowania przez SCP (przy użyciu opcji -c):
scp -c 3des-cbc -r test1 kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
Często zadawane pytania dotyczące polecenia SCP
W tej sekcji omówimy kilka często zadawanych pytań dotyczących polecenia SCP.
P # 1) Co to jest polecenie SCP?
Odpowiedź: SCP to skrót od Secure Copy Protocol. Za pomocą polecenia SCP można bezpiecznie kopiować pliki między hostami w sieci. Wykorzystuje mechanizmy SSH do przesyłania danych. Używa uwierzytelniania za pomocą klucza lub hasła.
P # 2) Co robi SCP w Linuksie?
Odpowiedź: W systemie Linux polecenie SCP przesyła pliki między serwerami w bezpieczny sposób. Może to być kopia pliku między zdalnym serwerem a lokalnym hostem lub między dwoma zdalnymi serwerami. SCP to wstępnie zainstalowane polecenie w systemie Linux i jest znane ze swojej prostoty i bezpieczeństwa.
P # 3) Jak tworzymy pliki SCP w Linuksie?
Odpowiedź: Możesz pliki SCP za pomocą następującej składni polecenia:
scp [options] [username@][source_host:]file1 [username@][destination_host:]file2.
Z poleceniem SCP można używać wielu opcji. Na przykład, -C dla kompresji, -c dla szyfrowania, -P dla portu, -I dla klucza prywatnego, -l dla limitu, -r dla kopii rekurencyjnej itp.
P # 4) W jaki sposób SCP plik?
Odpowiedź: Możesz SCP plik za pomocą polecenia SCP, jak wspomniano w Q # 3.
P # 5) Czy SCP kopiuje lub przenosi?
Odpowiedź: Polecenie SCP kopiuje plik (i) ze źródła do celu. Tak więc po SCP plik będzie obecny na obu hostach.
P # 6) Czy możesz używać SCP jako katalogu?
Odpowiedź: Tak, możemy użyć SCP jako katalogu. Musisz użyć opcji -r, aby skopiować cały katalog wraz z jego zawartością.
Poniżej znajduje się składnia polecenia SCP do kopiowania katalogu z lokalnego hosta do zdalnego hosta:
scp -r localhost_path_to_directory username@target_server_ip:/path_to_target_directory/
P # 7) Jak używamy SCP dla wszystkich plików w katalogu?
Odpowiedź: Aby użyć SCP na wszystkich plikach w katalogu, musisz dodać * ze ścieżką do katalogu:
scp -r localhost_path_to_directory/* username@target_server_ip:/path_to_target_directory/
W ten sposób wszystkie pliki w katalogu lokalnym zostaną skopiowane do katalogu zdalnego.
P # 8) Czy możemy używać SCP w systemie Windows?
Odpowiedź: Tak, możesz używać SCP w systemie Windows. Jednak nie jest ono wstępnie pobierane w systemie Windows, w przeciwieństwie do Linuksa i Maca, więc w przypadku systemu Windows należy oddzielnie zainstalować oprogramowanie SCP.
Możesz pobrać Putty, który zawiera SCP dla Windows (oprogramowanie o nazwie Putty SCP (PSCP), lub możesz pobrać WinSCP (Windows Secure Copy). Klient PSCP działa bezpośrednio z wiersza poleceń Windows. Istnieją również inne programy do używania SCP w Windows .
P # 9) Jak używamy SCP do wielu plików?
Odpowiedź: Aby skopiować wiele plików z hosta lokalnego do zdalnego hosta za pomocą SCP:
scp file1 file2 UserName@TargetHost:TargetDirectoryPath
Aby skopiować wiele plików ze zdalnego hosta do bieżącego katalogu lokalnego hosta za pomocą SCP:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}
P # 10) Jaka jest różnica między SCP a SFTP?
Odpowiedź: SCP to protokół bezpiecznego kopiowania. SFTP to bezpieczny protokół przesyłania plików. Oba używają portu TCP 22 i działają w mechanizmie SSH. Ale różnią się specyfikacjami i funkcjami.
SCP przesyła tylko dane, podczas gdy SFTP pełni również funkcje dostępu do plików i zarządzania plikami, oprócz przesyłania plików. Dzięki SFTP możesz wykonywać operacje, takie jak wyświetlanie zdalnych katalogów lub usuwanie plików. Ale SCP zezwala tylko na kopiowanie plików i katalogów między serwerami.
Szybkość przesyłania plików w SCP jest szybsza niż SFTP, ponieważ wykorzystuje bardziej wydajny algorytm przesyłania plików.
W SFTP można wznowić przerwany transfer plików z klienta wiersza poleceń. Ale SCP nie ma tej funkcji.
najlepszy konwerter youtube na mp3
SFTP oferuje składnik GUI, ale SCP go nie ma.
P # 11) Co to jest polecenie SCP w systemie Windows do bezpiecznego kopiowania pliku?
Odpowiedź: Otwórz wiersz polecenia systemu Windows i wydaj poniższe polecenie, aby bezpiecznie skopiować plik z lokalnego komputera z systemem Windows na serwer (może to być serwer Linux):
pscp ścieżka_pliku userid @ target_server_ip: target_path
Przykład: pscp c: desktop sample.txt userxyz@192.162.x.x: /tmp/foo/sample.txt
Aby wykonać to polecenie, powinieneś mieć zainstalowany PSCP.
Pytanie 12) Czy SCP jest bezpieczny?
Odpowiedź: Tak, SCP jest bezpieczny. Wykorzystuje mechanizm SSH (Secure Shell Protocol) do przesyłania danych, dzięki czemu korzysta z bezpieczeństwa oferowanego przez SSH. Przesyłane dane są poufne, a także zapewniana jest ich autentyczność.
Wniosek
W tym samouczku widzieliśmy, jak używać polecenia SCP do bezpiecznego kopiowania plików między dwoma zdalnymi hostami lub między hostem lokalnym a hostem zdalnym, bez inicjowania sesji FTP lub jawnego logowania się do zdalnych maszyn.
SCP wykorzystuje mechanizm SSH do kopiowania danych, dzięki czemu przesyłane dane są szyfrowane i zabezpieczone. Do uwierzytelnienia potrzebne jest hasło lub klucz. W przeciwieństwie do RCP (Remote Copy Protocol) lub FTP (File Transfer Protocol), SCP szyfruje zarówno plik, jak i hasła wymieniane między systemami, aby chronić wszelkie szpiegowanie w sieci.
rekomendowane lektury
- Polecenie Cut w systemie Unix z przykładami
- Znajdź polecenie w systemie Unix: Znajdź pliki za pomocą systemu Unix Znajdź plik (przykłady)
- Składnia poleceń Unix Cat, opcje z przykładami
- Polecenie Ls w systemie Unix z przykładami
- Argumenty wiersza poleceń w skrypcie powłoki systemu Unix z przykładem
- Polecenie Grep w systemie Unix z prostymi przykładami
- Manipulacja plikami w Uniksie: Przegląd systemu plików Unix
- Polecenie sortowania Unix ze składnią, opcjami i przykładami