12 scp command examples securely transfer files linux
Tento výukový program vysvetľuje protokol Secure Copy Protocol alebo príkaz SCP používaný na bezpečné kopírovanie súborov v systémoch Linux a Unix so syntaxou a príkladmi:
V tomto článku sa budeme zaoberať príkazom SCP (Secure Copy Protocol), ktorý sa používa na prenos súborov. Uvidíme, čo to je a ako to funguje, pomocou niekoľkých príkladov. Skúsme teda najskôr pochopiť, čo je príkaz SCP.
Čo sa dozviete:
Čo je príkaz SCP?
SCP (Secure Copy Protocol) je sieťový protokol, ktorý sa používa na bezpečný prenos súborov medzi hostiteľmi v počítačovej sieti. Pomocou tohto nástroja príkazového riadku v systémoch podobných operačným systémom Linux a Unix môžete vykonať prenos súborov z lokálneho hostiteľa na vzdialeného hostiteľa alebo zo vzdialeného hostiteľa do lokálneho systému alebo medzi dvoma vzdialenými hostiteľmi.
(obrázok zdroj )
SCP zaisťuje autenticitu, šifrovanie a dôvernosť údajov využitím mechanizmu SSH (Secure Shell) na prenos súborov. Takže prenášané údaje sú chránené pred slídiacimi útokmi. Klienti môžu pomocou tohto protokolu nahrávať a sťahovať súbory a adresáre na server a zo servera. Na autentifikáciu vyžaduje buď heslo, alebo kľúče. Predvolený port pre SCP je TCP port 22.
Výhodou protokolu SCP je, že nemusíte na prenos súborov spúšťať reláciu FTP ani sa výslovne prihlásiť do vzdialených hostiteľov.
Syntax pre protokol SCP
# 1) Na kopírovanie súboru z lokálneho na vzdialeného hostiteľa
scp (options) SourceFileName UserName@TargetHost:TargetPath
Toto je úplne základná syntax príkazu SCP, ktorý pomocou používateľského účtu skopíruje zdrojový súbor z aktuálneho hostiteľa na cieľovú cestu v cieľovom hostiteľovi. Spravidla je to celkom podobné príkazu copy cp.
# 2) Na kopírovanie zo vzdialeného hostiteľa do lokálneho
Pre kopírovanie súboru:
scp (options) UserName@SourceHost:SourceFilePath TargetFileName
Alebo jednoducho stiahnite súbor:
scp (options) UserName@SourceHost:SourceFilePath
Pre kopírovanie priečinka (rekurzívne):
scp -r UserName@SourceHost:SourceDirectoryPath TargetFolderName
Ak vzdialený hostiteľ používa iný port ako predvolený port 22, potom musí byť číslo portu výslovne uvedené v príkaze pomocou voľby -P.
# 3) Kopírovanie z jedného vzdialeného počítača do druhého vzdialeného počítača
scp (options) UserName@SourceHost:SourcePath UserName@TargetHost:TargetPath
Pri kopírovaní súborov z jedného vzdialeného počítača do druhého počítač neprenáša prenos. Táto operácia sa uskutočňuje priamo medzi dvoma vzdialenými servermi.
# 4) Kopírovanie viacerých súborov
Pre kopírovanie viacerých súborov z localhostu na vzdialeného hostiteľa:
scp file1 file2 UserName@TargetHost:TargetDirectoryPath
Na kopírovanie viacerých súborov zo vzdialeného hostiteľa do aktuálneho adresára localhost:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}
Možnosti použité príkazom SCP
Najčastejšie používané možnosti s príkazom SCP sú uvedené nižšie:
- -C : C, tu znamená povoliť kompresiu. Použitím tejto možnosti bude povolená kompresia a rýchlosť kopírovania sa zvýši. Automaticky povolí kompresiu pri zdroji a dekompresiu pri cieli.
- -c: c znamená šifra. V predvolenom nastavení používa SCP na šifrovanie súborov „AES-128“. Ak chcete zmeniť šifru, musíte použiť voľbu -c nasledovanú názvom šifry.
- -i: i znamená identifikačný súbor alebo súkromný kľúč. V prostredí Linuxu sa spravidla vyberá autentifikácia na základe kľúča. Môžeme teda konkrétne spomenúť súbor súkromného kľúča alebo súbor identity pomocou voľby -i.
- -l: Znamená to obmedzenú šírku pásma. Prostredníctvom tejto možnosti môžete nastaviť maximálnu šírku pásma, ktorá sa má použiť. Je to v kb / s.
- -B: Táto možnosť sa používa na použitie dávkového režimu počas kopírovania.
- -F: Táto možnosť sa používa na použitie iného súboru ssh_config pri kopírovaní v situáciách, keď na pripojenie k systémom Linux potrebujete rôzne siete. V takýchto scenároch musíte priradiť náhradný konfiguračný súbor SSH na používateľa.
- -P: Ak je číslo portu ssh cieľového hostiteľa odlišné od predvoleného čísla portu 22, musíte konkrétne uviesť číslo portu pomocou voľby -P.
- -p: Táto možnosť sa používa na zachovanie povolení, úprav a časov prístupu k súborom počas kopírovania.
- -q: Táto možnosť vykoná príkaz SCP v tichom režime. Vypne indikátor priebehu a na obrazovke terminálu systému Linux nebude zobrazovať priebeh prenosu, varovné ani diagnostické správy ssh.
- -r: Voľba -r sa používa na rekurzívne kopírovanie súborov a adresárov. Napríklad, ak chcete skopírovať celý priečinok (spolu s obsahom vo vnútri priečinka) na cieľovom počítači, musíte použiť voľbu -r.
- -S: Táto voľba sa používa na určenie programu, ktorý sa má použiť na pripojenie.
- -v: v znamená verbose. Táto možnosť zobrazí postupný krok vykonávania príkazu SCP na obrazovke terminálu. Pri ladení je to naozaj užitočné.
Príklady príkazov SCP
Poďme pochopiť, ako používať príkaz SCP pomocou príkladov:
Príklad 1: na kopírovanie z lokálneho na vzdialeného hostiteľa
scp -v lockfile.txt kaushapx@10.172.80.167: /home/cpf657/kaushapx/test1
Vo vyššie uvedenom príklade
čím sa otvárajú súbory json
- -v voľba sa používa ako podrobná voľba na zobrazenie podrobností výstupu tohto príkazu na termináli Linux. Pomocou podrobného výstupu môžete presne zistiť, čo sa deje na pozadí, keď sa vykoná príkaz. To pomáha ladiť.
- Lockfile.txt je názov zdrojového súboru, ktorý chceme preniesť na vzdialeného hostiteľa.
- Kaushapx je príkladom používateľského mena. Pomocou tohto účtu používateľského mena bezpečne skopírujeme súbor na vzdialeného hostiteľa.
- 10.172.80.167 je príklad adresy IP cieľového vzdialeného hostiteľa, na ktorý chceme súbor preniesť.
- / home / cpf657 / kaushapx / test1 je príkladom absolútnej cesty, kam chceme tento prenesený súbor vložiť.
Nasledujúce snímky obrazovky demonštrujú vykonanie vyššie uvedeného príkazu SCP.
Príklad 2: na kopírovanie zo vzdialeného hostiteľa do lokálneho systému:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/test/parent/directory1/DemoFile.txt /home/tpf655/kaushapx
Príklad 3: pre kopírovanie viacerých súborov na vzdialeného hostiteľa:
ako nastaviť bránu firewall v sieti
scp DemoFile.txt log.xml kaushapx@10.172.80.167:/home/cpf657/kaushapx/test
Príklad 4: na kopírovanie súborov cez dva vzdialené systémy:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
Príklad 5: na rekurzívne kopírovanie súborov a adresárov (pomocou voľby -r):
Predpokladajme, že v priečinku localhost mám priečinok s názvom „test“ a tento priečinok obsahuje štyri súbory. Chcem skopírovať celý priečinok do iného priečinka s názvom „test1“, ktorý je prítomný na vzdialenom hostiteľovi.
Použijem nasledujúci príkaz:
scp -r test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Príklad 6: pre zvýšenie rýchlosti kopírovania povolením kompresie (pomocou možnosti -C):
Preneste ten istý priečinok, ktorý sme vytvorili v príklade 5, tentokrát však povolením kompresie:
scp -r -C test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Príklad 7: pre obmedzenie šírky pásma pri kopírovaní (pomocou voľby -l):
Pokračujme s rovnakou možnosťou. Tentokrát použijeme voľbu -l a zadáme šírku pásma, napríklad 500. Pamätajte, že šírka pásma, ktorú sme sem zadali, je v Kbit / s.
Príklad 8: na zadanie iného portu ssh pri kopírovaní (pomocou voľby -P):
Ak vzdialený server, na ktorý kopírujete súbor, používa iný port ako predvolený port 22, musíte pomocou príkazu -P výslovne povedať číslo portu v príkaze SCP. Napríklad, ak je ssh port vzdialeného servera 2022, potom v príkaze SCP spomeniete -P 2022.
scp -P 2022 console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
Príklad 9: na zachovanie povolení, úprav a časov prístupu k súborom počas kopírovania (pomocou voľby -p):
scp -p console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Príklad 10: na kopírovanie súborov v tichom režime (pomocou voľby -q):
scp -q console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Príklad 11: na identifikáciu súborov v SCP počas kopírovania (pomocou možnosti -i):
Vo vyššie uvedenom príklade je my_private_key.pem súbor identity alebo súbor súkromného kľúča.
Príklad 12: pre použitie inej šifry pri kopírovaní cez SCP (pomocou voľby -c):
scp -c 3des-cbc -r test1 kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
Časté otázky k príkazu SCP
V tejto časti sa budeme venovať niektorým často kladeným otázkam o príkaze SCP.
Otázka 1) Čo je príkaz SCP?
Odpoveď: SCP znamená Secure Copy Protocol. Pomocou príkazu SCP môžete bezpečne kopírovať súbory medzi hostiteľmi v sieti. Na prenos údajov využíva mechanizmy SSH. Používa autentifikáciu na základe kľúča alebo hesla.
Otázka 2) Čo robí SCP v Linuxe?
Odpoveď: V systéme Linux príkaz SCP prenáša súbory medzi servermi bezpečným spôsobom. Môže to byť kópia súboru medzi vzdialeným serverom a lokálnym hostiteľom alebo medzi dvoma vzdialenými servermi. SCP je predinštalovaný príkaz v systéme Linux a je známy svojou jednoduchosťou a bezpečnosťou.
Otázka č. 3) Ako spravíme súbory SCP v systéme Linux?
Odpoveď: Súbory SCP môžete vykonávať pomocou nasledujúcej syntaxe príkazu:
scp (options) (username@)(source_host:)file1 (username@)(destination_host:)file2.
S príkazom SCP je možné použiť veľa možností. Napríklad, -C pre kompresiu, -c pre šifru, -P pre port, -I pre súkromný kľúč, -l pre limit, -r pre rekurzívne kopírovanie atď.
Otázka č. 4) Ako vyhľadáme súbor?
Odpoveď: Môžete SCP súbor pomocou príkazu SCP, ako je uvedené v Q # 3.
Otázka č. 5) Kopíruje sa alebo pohybuje SCP?
Odpoveď: Príkaz SCP skopíruje súbory zo zdroja do cieľa. Po SCP bude teda súbor prítomný u oboch hostiteľov.
Otázka č. 6) Môžete použiť SCP pre adresár?
Odpoveď: Áno, môžeme použiť SCP pre adresár. Musíte použiť voľbu -r na kopírovanie celého adresára spolu s jeho obsahom.
Ďalej je uvedená syntax príkazu SCP na kopírovanie adresára z lokálneho hostiteľa na vzdialeného hostiteľa:
scp -r localhost_path_to_directory username@target_server_ip:/path_to_target_directory/
Otázka č. 7) Ako použijeme SCP pre všetky súbory v adresári?
Odpoveď: Ak chcete použiť SCP na všetky súbory v adresári, musíte pridať * s cestou adresára:
scp -r localhost_path_to_directory/* username@target_server_ip:/path_to_target_directory/
Týmto spôsobom sa všetky súbory v lokálnom adresári skopírujú do vzdialeného adresára.
Otázka č. 8) Môžeme používať SCP vo Windows?
Odpoveď: Áno, SCP môžete používať vo Windows. Nie je však predinštalovaný v systéme Windows, na rozdiel od systémov Linux a Mac, takže v prípade systému Windows je potrebné softvér SCP nainštalovať samostatne.
Môžete si stiahnuť Putty, ktorý obsahuje SCP pre Windows (softvér Putty SCP (PSCP), alebo si môžete stiahnuť WinSCP (Windows Secure Copy). Klient PSCP sa spúšťa priamo z príkazového riadku systému Windows. Na použitie SCP v systéme Windows existuje aj ďalší softvér. .
Otázka č. 9) Ako používame SCP pre viac súborov?
Odpoveď: Pre kopírovanie viacerých súborov z localhostu na vzdialeného hostiteľa pomocou SCP:
scp file1 file2 UserName@TargetHost:TargetDirectoryPath
Pre kopírovanie viacerých súborov zo vzdialeného hostiteľa do aktuálneho adresára localhost pomocou SCP:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}
Otázka č. 10) Aký je rozdiel medzi SCP a SFTP?
Odpoveď: SCP je protokol Secure Copy. SFTP je protokol zabezpečeného prenosu súborov. Oba používajú port TCP 22 a fungujú na mechanizme SSH. Líšia sa ale v špecifikáciách a funkciách.
SCP prenáša iba údaje, zatiaľ čo SFTP okrem prenosu súborov vykonáva aj funkcie prístupu k súborom a správy súborov. Pomocou protokolu SFTP môžete vykonávať operácie, ako je výpis vzdialených adresárov alebo mazanie súborov. Ale SCP umožňuje iba kopírovanie súborov a adresárov medzi servermi.
Rýchlosť prenosu súborov v SCP je rýchlejšia ako SFTP, pretože na prenos súborov používa efektívnejší algoritmus.
čo môžem robiť s c ++
Na serveri SFTP môžete obnoviť prerušený prenos súborov z klienta príkazového riadku. Ale SCP túto funkciu nemá.
SFTP ponúka komponent GUI, ale SCP ho nemá.
Otázka č. 11) Čo je príkaz SCP v systéme Windows na bezpečné kopírovanie súboru?
Odpoveď: Otvorte príkazový riadok systému Windows a nižšie zadajte príkaz na bezpečné kopírovanie súboru z lokálneho počítača so systémom Windows na server (môže to byť server so systémom Linux):
pscp filepath userid @ target_server_ip: target_path
Príklad: pscp c: desktop sample.txt userxyz@192.162.x.x: /tmp/foo/sample.txt
Na vykonanie tohto príkazu by ste mali mať nainštalovaný PSCP.
Otázka č. 12) Je SCP bezpečné?
Odpoveď: Áno, SCP je zabezpečené. Na prenos dát používa mechanizmus SSH (Secure Shell Protocol), takže z neho profituje bezpečnosť, ktorú ponúka SSH. Pri prenose údajov sa zachováva dôvernosť a tiež sa zaručuje ich autenticita.
Záver
V tomto tutoriáli sme videli, ako používať príkaz SCP na bezpečné kopírovanie súborov medzi dvoma vzdialenými hostiteľmi alebo medzi lokálnym hostiteľom a vzdialeným hostiteľom bez inicializácie relácie FTP alebo explicitného prihlásenia do vzdialených počítačov.
SCP využíva mechanizmus SSH na kopírovanie údajov, a teda prenášané údaje sú šifrované a zabezpečené. Na autentifikáciu potrebuje heslo alebo kľúč. Na rozdiel od RCP (Remote Copy Protocol) alebo FTP (File Transfer Protocol), SCP šifruje súbory aj heslá vymieňané medzi systémami, aby chránil akékoľvek snooping v sieti.
Odporúčané čítanie
- Vystrihnite príkaz v systéme Unix s príkladmi
- Vyhľadanie príkazu v systéme Unix: Vyhľadanie súborov pomocou vyhľadávacieho súboru systému Unix (príklady)
- Syntax príkazov Unix Cat, možnosti s príkladmi
- Príkaz Ls v systéme Unix s príkladmi
- Argumenty príkazového riadku v Unix Shell Script s príkladom
- Príkaz Grep v systéme Unix s jednoduchými príkladmi
- Manipulácia so súbormi v systéme Unix: Prehľad systému súborov Unix
- Unixový príkaz na triedenie so syntaxou, možnosťami a príkladmi