12 scp command examples securely transfer files linux
Acest tutorial explică protocolul de copiere securizată sau comanda SCP utilizate pentru copierea în siguranță a fișierelor în Linux și Unix cu sintaxă și exemple:
În acest articol, vom discuta comanda SCP (Secure Copy Protocol) care este utilizată pentru transferul de fișiere. Vom vedea ce este și cum funcționează cu ajutorul câtorva exemple. Deci, să încercăm mai întâi să înțelegem ce este comanda SCP.
Ce veți învăța:
Ce este comanda SCP?
SCP (Secure Copy Protocol) este un protocol de rețea care este utilizat pentru transferul sigur al fișierelor între gazde pe o rețea de calculatoare. Folosind acest utilitar de linie de comandă în sistemele Linux și Unix, puteți face transferul de fișiere de la un host local la o gazdă la distanță, sau de la o gazdă la distanță la un sistem local sau între două gazde la distanță.
(imagine sursă )
SCP asigură autenticitatea, criptarea și confidențialitatea datelor, utilizând mecanismul SSH (Secure Shell) pentru transferul fișierelor. Deci, datele în tranzit sunt protejate de atacurile de spionaj. Clienții pot încărca și descărca fișiere și directoare către și de pe un server folosind acest protocol. Necesită fie parolă, fie chei pentru autentificare. Portul implicit pentru SCP este portul TCP 22.
Avantajul protocolului SCP este că nu este nevoie să porniți o sesiune FTP sau să vă conectați în mod explicit la gazdele de la distanță pentru transferul de fișiere.
Sintaxă pentru protocolul SCP
# 1) Pentru copierea fișierului de la local la gazda la distanță
scp (options) SourceFileName UserName@TargetHost:TargetPath
Aceasta este sintaxa de bază a comenzii SCP care va copia fișierul sursă de la gazda curentă la calea țintă de la gazda țintă utilizând un cont de utilizator. De obicei, este destul de similar cu comanda copy cp.
# 2) Pentru copierea de la o gazdă la distanță la locală
Pentru copierea fișierului:
scp (options) UserName@SourceHost:SourceFilePath TargetFileName
Sau, pur și simplu descărcați fișierul:
scp (options) UserName@SourceHost:SourceFilePath
Pentru copierea folderului (recursiv):
scp -r UserName@SourceHost:SourceDirectoryPath TargetFolderName
Dacă gazda la distanță folosește un alt port decât portul implicit 22, atunci numărul portului trebuie menționat explicit în comanda folosind opțiunea -P.
# 3) Copierea de pe un computer la distanță pe alt computer la distanță
scp (options) UserName@SourceHost:SourcePath UserName@TargetHost:TargetPath
Când copiați fișiere de pe un computer la distanță pe altul, traficul nu trece pe lângă computerul dvs. Această operațiune are loc direct între cele două servere la distanță.
# 4) Copierea mai multor fișiere
Pentru copierea mai multor fișiere de la localhost la o gazdă la distanță:
scp file1 file2 UserName@TargetHost:TargetDirectoryPath
Pentru copierea mai multor fișiere de la o gazdă la distanță într-un director curent al localhost:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}
Opțiuni utilizate cu comanda SCP
Opțiunile cele mai frecvent utilizate cu comanda SCP sunt enumerate mai jos:
- -C : C, aici reprezintă activarea compresiei. Prin utilizarea acestei opțiuni, compresia va fi activată și viteza de transfer va fi mărită în timpul copierii. Acesta va activa automat compresia la sursă și decompresia la țintă.
- -c: c înseamnă cifru. În mod implicit, SCP utilizează „AES-128” pentru criptarea fișierelor. Dacă doriți să schimbați cifrul, trebuie să utilizați opțiunea -c urmată de numele cifrului.
- -i: Eu reprezintă fișierul de identificare sau cheia privată. În general, autentificarea bazată pe cheie este aleasă în mediile Linux. Deci, putem menționa în mod specific fișierul cu cheie privată sau fișierul de identitate folosind opțiunea -i.
- -l: Eu reprezintă lățimea de bandă limită. Prin această opțiune, puteți seta lățimea de bandă maximă care trebuie utilizată. Este în Kbits / s.
- -B: Această opțiune este utilizată pentru utilizarea modului batch în timpul copierii.
- -F: Această opțiune este utilizată pentru utilizarea unui fișier ssh_config diferit în timp ce copiați în situații în care trebuie să utilizați rețele diferite pentru a vă conecta la sistemele Linux. În astfel de scenarii, trebuie să alocați un fișier de configurare SSH pentru fiecare utilizator.
- -P: Dacă numărul portului ssh al gazdei de destinație este diferit de numărul portului implicit 22, atunci trebuie să menționați în mod specific numărul portului folosind opțiunea -P.
- -p: Această opțiune este utilizată pentru păstrarea permisiunilor fișierelor, modificărilor și timpilor de acces în timpul copierii.
- -q: Această opțiune va executa comanda SCP în modul silențios. Acesta va opri contorul de progres și nu va afișa progresul transferului, mesajele de avertizare sau de diagnosticare ale ssh pe ecranul terminalului Linux.
- -r: -r opțiunea este utilizată pentru a copia fișierele și directoarele recursiv. De exemplu, dacă doriți să copiați întregul folder (împreună cu conținutul din folder) pe o mașină țintă, trebuie să utilizați opțiunea -r.
- -S: Această opțiune este utilizată pentru specificarea programului de utilizat pentru conectare.
- -v: v înseamnă verbose. Această opțiune va arăta progresul pas cu pas al executării comenzii SCP pe ecranul terminalului. Este foarte util în depanare.
Exemple de comenzi SCP
Să înțelegem cum să folosim Comanda SCP cu ajutorul exemplelor:
Exemplul 1: pentru copierea de la gazdă locală la distanță
scp -v lockfile.txt kaushapx@10.172.80.167: /home/cpf657/kaushapx/test1
În exemplul de mai sus,
ce dispozitive funcționează la nivelul osi 2
- Opțiunea -v este utilizată ca opțiune detaliată pentru a vedea detaliile ieșirii acestei comenzi pe terminalul Linux. Folosind ieșirea detaliată, puteți afla exact ce se întâmplă în fundal atunci când comanda este executată. Acest lucru ajută la depanare.
- Lockfile.txt este numele fișierului sursă pe care dorim să îl transferăm către o gazdă la distanță.
- Kaushapx este un exemplu de nume de utilizator. Folosind acest cont de nume de utilizator, vom copia în siguranță fișierul pe gazda de la distanță.
- 10.172.80.167 este exemplul adresei IP a gazdei la distanță țintă pe care dorim să transferăm fișierul.
- / home / cpf657 / kaushapx / test1 este un exemplu de cale absolută în care dorim să punem acest fișier transferat.
Capturile de ecran de mai jos demonstrează executarea comenzii SCP de mai sus.
Exemplul 2: pentru copierea de la gazda la distanță la sistemul local:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/test/parent/directory1/DemoFile.txt /home/tpf655/kaushapx
Exemplul 3: pentru copierea mai multor fișiere pe o gazdă la distanță:
scp DemoFile.txt log.xml kaushapx@10.172.80.167:/home/cpf657/kaushapx/test
Exemplul 4: pentru copierea fișierelor pe două sisteme la distanță:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
Exemplul 5: pentru copierea de fișiere și directoare recursiv (folosind opțiunea -r):
Să presupunem că am un folder numit „test” în localhost și acest folder conține patru fișiere. Vreau să copiez întregul folder într-un alt folder numit „test1” prezent la o gazdă la distanță.
Voi folosi următoarea comandă:
cum să treceți matricea ca parametru în java
scp -r test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Exemplul 6: pentru creșterea vitezei de copiere prin activarea compresiei (folosind opțiunea -C):
Să transferăm același folder pe care l-am făcut în Exemplul 5, dar de data aceasta activând compresia:
scp -r -C test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Exemplul 7: pentru limitarea lățimii de bandă în timpul copierii (folosind opțiunea -l):
Să continuăm cu aceeași opțiune. De data aceasta vom folosi opțiunea -l și vom specifica lățimea de bandă, să zicem 500. Amintiți-vă, lățimea de bandă pe care am pus-o aici este în Kbit / s.
Exemplul 8: pentru specificarea portului ssh diferit în timpul copierii (folosind opțiunea -P):
Dacă serverul la distanță pe care copiați fișierul folosește un alt port decât portul implicit 22, atunci trebuie să spuneți în mod explicit numărul portului în comanda SCP folosind opțiunea -P. De exemplu, dacă portul ssh al serverului la distanță este 2022, atunci veți menționa -P 2022 în comanda SCP.
scp -P 2022 console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
Exemplul 9: pentru păstrarea permisiunilor fișierelor, modificărilor și timpilor de acces în timpul copierii (folosind opțiunea -p):
scp -p console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Exemplul 10: pentru copierea fișierelor în modul silențios (folosind opțiunea -q):
scp -q console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Exemplul 11: pentru identificarea fișierelor în SCP în timpul copierii (folosind opțiunea -i):
În exemplul de mai sus, my_private_key.pem este fișierul de identitate sau fișierul cu cheie privată.
Exemplul 12: pentru utilizarea unui cript diferit în timp ce copiați prin SCP (folosind opțiunea -c):
scp -c 3des-cbc -r test1 kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
Întrebări frecvente despre comanda SCP
În această secțiune, vom acoperi câteva întrebări frecvente despre comanda SCP.
Q # 1) Ce este comanda SCP?
Răspuns: SCP înseamnă Secure Copy Protocol. Folosind comanda SCP, puteți efectua copierea fișierelor în siguranță între gazde dintr-o rețea. Folosește mecanismele SSH pentru transferul de date. Folosește autentificare bazată pe cheie sau parolă.
Q # 2) Ce face SCP în Linux?
Răspuns: În Linux, comanda SCP transferă fișierele între servere într-un mod sigur. Ar putea fi o copie de fișier între un server la distanță și o gazdă locală sau între două servere la distanță. SCP este o comandă preinstalată în Linux și este cunoscută pentru simplitatea și securitatea sa.
Î # 3) Cum facem fișierele SCP în Linux?
Răspuns: Puteți SCP fișiere prin următoarea sintaxă de comandă:
scp (options) (username@)(source_host:)file1 (username@)(destination_host:)file2.
Multe opțiuni pot fi utilizate cu comanda SCP. De exemplu, -C pentru compresie, -c pentru cifru, -P pentru port, -I pentru cheia privată, -l pentru limită, -r pentru copiere recursivă etc.
Q # 4) Cum SCP un fișier?
Răspuns: Puteți SCP un fișier utilizând comanda SCP așa cum se menționează în Q # 3.
Q # 5) SCP copiază sau se mută?
Răspuns: Comanda SCP copiază fișierul (fișierele) de la sursă la destinație. Deci, după SCP, fișierul va fi prezent atât la gazde.
Q # 6) Puteți utiliza SCP pentru un director?
Răspuns: Da, putem folosi SCP pentru un director. Trebuie să utilizați opțiunea -r pentru copierea întregului director împreună cu conținutul acestuia.
Mai jos este sintaxa comenzii SCP pentru copierea directorului de la un host local la o gazdă la distanță:
scp -r localhost_path_to_directory username@target_server_ip:/path_to_target_directory/
Q # 7) Cum folosim SCP pentru toate fișierele dintr-un director?
Răspuns: Pentru a utiliza SCP pe toate fișierele dintr-un director, trebuie să adăugați * cu calea directorului:
scp -r localhost_path_to_directory/* username@target_server_ip:/path_to_target_directory/
În acest fel, toate fișierele din directorul local vor fi copiate în directorul de la distanță.
Q # 8) Putem folosi SCP în Windows?
Răspuns: Da, puteți utiliza SCP în Windows. Cu toate acestea, nu este pre-descărcat în Windows, spre deosebire de Linux și Mac, deci pentru Windows, trebuie să instalați software-ul SCP separat.
Puteți descărca Putty care include SCP pentru Windows (software numit Putty SCP (PSCP) sau puteți descărca WinSCP (Windows Secure Copy). Clientul PSCP rulează direct din promptul de comandă Windows. Există și alte programe pentru utilizarea SCP în Windows .
Q # 9) Cum folosim SCP pentru mai multe fișiere?
Răspuns: Pentru copierea mai multor fișiere de la localhost pe o gazdă la distanță folosind SCP:
scp file1 file2 UserName@TargetHost:TargetDirectoryPath
Pentru copierea mai multor fișiere de la o gazdă la distanță într-un director curent al localhost utilizând SCP:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}
Q # 10) Care este diferența dintre SCP și SFTP?
Răspuns: SCP este Protocolul de copiere securizată. SFTP este Protocolul de transfer de fișiere securizat. Ambele folosesc portul TCP 22 și rulează pe mecanismul SSH. Dar diferă în specificații și funcții.
SCP transferă doar datele, în timp ce SFTP efectuează, de asemenea, acces la fișiere și funcții de gestionare a fișierelor, pe lângă transferul de fișiere. Cu SFTP, puteți face operațiuni precum listarea directoarelor la distanță sau ștergerea fișierelor. Dar SCP permite doar copierea fișierelor și a directoarelor între servere.
Viteza de transfer de fișiere în SCP este mai rapidă decât SFTP, deoarece folosește un algoritm mai eficient pentru transferul de fișiere.
cel mai bun convertor de la YouTube la mp3
În SFTP, puteți relua transferul de fișiere întrerupt de la clientul de linie de comandă. Dar SCP nu are această funcție.
SFTP oferă o componentă GUI, dar SCP nu are acest lucru.
Q # 11) Care este comanda SCP din Windows pentru copierea în siguranță a unui fișier?
Răspuns: Deschideți promptul de comandă Windows și dați comanda de mai jos pentru a copia în siguranță un fișier de pe o mașină locală Windows pe un server (poate fi un server Linux):
pscp filepath userid @ target_server_ip: target_path
Exemplu: pscp c: desktop sample.txt userxyz@192.162.x.x: /tmp/foo/sample.txt
Ar trebui să aveți PSCP instalat pentru executarea acestei comenzi.
Q # 12) SCP este sigur?
Răspuns: Da, SCP este sigur. Folosește mecanismul SSH (Secure Shell Protocol) pentru transferul de date, astfel beneficiază de securitatea oferită de SSH. Datele în tranzit sunt păstrate confidențiale și, de asemenea, autenticitatea acestora este asigurată.
Concluzie
În acest tutorial, am văzut cum să folosim comanda SCP pentru copierea în siguranță a fișierelor între două gazde la distanță sau între o gazdă locală și o gazdă la distanță, fără a iniția o sesiune FTP sau a vă conecta în mod explicit la mașinile la distanță.
SCP folosește mecanismul SSH pentru copierea datelor și astfel datele în tranzit sunt criptate și securizate. Are nevoie de o parolă sau o cheie pentru autentificare. Spre deosebire de RCP (Remote Copy Protocol) sau FTP (File Transfer Protocol), SCP criptează atât fișierul, cât și parolele schimbate între sisteme pentru a proteja orice spionaj din rețea.
Lectură recomandată
- Tăiați comanda în Unix cu exemple
- Găsiți comanda în Unix: Găsiți fișiere cu Unix Găsește fișier (exemple)
- Sintaxa de comandă Unix Cat, Opțiuni cu exemple
- Comanda Ls în Unix cu exemple
- Argumente de linie de comandă în scriptul Shell Unix cu exemplu
- Comanda Grep în Unix cu exemple simple
- Manipularea fișierelor în Unix: Prezentare generală a sistemului de fișiere Unix
- Comanda de sortare Unix cu sintaxă, opțiuni și exemple