Cum să utilizați comanda scp pentru a transfera în siguranță fișiere în Linux

Să presupunem că doriți să transferați unele fișiere între servere pe un sistem Linux. Există multe moduri în care puteți îndeplini sarcina, dar dacă prioritatea dvs. este să transferați fișiere în siguranță, aveți câteva opțiuni. Cea mai ușoară soluție este să utilizați comanda scp sau secure copy pentru a vă transfera fișierele fără să vă faceți griji cu privire la securitate. În acest articol, vom explica cum să utilizați fișierele de transfer în siguranță folosind comanda scp pe sistemul dumneavoastră Linux.

Transferați fișiere cu comanda scp în Linux (2023)

Ce este comanda scp în Linux

Când vine vorba de transferul de fișiere într-o rețea securizată, comanda scp poate fi foarte utilă. Aceasta înseamnă Secure Copy Protocol și transferă fișiere și directoare între două sisteme prin conexiune SSH (Secure Shell). Cu ssh, puteți fi sigur de securitatea fișierelor dvs., deoarece acestea sunt criptate implicit. În termeni mai simpli, comanda scp este o versiune mai sigură a comenzii cp, despre care puteți citi totul în articolul nostru despre comenzile terminalului Linux.

Cum se utilizează comanda scp: Sintaxă și Opțiuni

Înainte de a putea transfera fișiere prin scp, să vedem sintaxa și opțiunile comenzii chiar aici:

scp <[email protected]_adresa_ip:cale/la/sursa/fisier> <[email protected]_adresă_ip:țintă/cale>

Înțelegerea sintaxei:

  • În primul rând, <[email protected]_ip_address:path/to/source/file> specifică sistemul „sursă” de unde trebuie să transferați fișierele/directoarele.
  • În al doilea rând, <[email protected]_ip_address:target/path> specifică sistemul „țintă” către care doriți să transferați fișierele/directoarele.

Dacă lăsați oricare dintre parametrii de mai sus, comanda scp din Linux va căuta mai întâi fișierul și apoi va copia fișierul local. Unele dintre opțiunile de asociere cu comanda sunt:

OptionsDestination-PSpecifică ce port să se conecteze la sistemul gazdă. Dacă este omis, atunci va folosi portul 22 în mod implicit.-pPăstrează timpii de modificare, timpii de acces și modurile din fișierul original atunci când este copiat în sistemul țintă.-rCopiează întregul director în sistemul țintă în mod recursiv.-JUFolosit pentru a conecta sistemul sursă și sistemul de destinație printr-un sistem proxy (gazdă de salt).-3când este utilizat acest indicator, acesta copiază fișierele atât în ​​sistemul țintă, cât și în sistemul local-4forțează comanda scp să folosească numai adrese IPv4.-6forțează comanda scp pentru a utiliza numai adrese IPv6.

  Cum să descărcați fișiere pe Linux cu Curl

Cum să copiați fișiere folosind comanda scp

Înainte de a utiliza comanda scp în Linux, există câteva cerințe preliminare pe care trebuie să le îndepliniți atât pe sistemul gazdă, cât și pe cel țintă:

  • ssh ar trebui instalat
  • acces root sau orice utilizator cu privilegii sudo

Copiați fișierele de la gazdă locală la țintă la distanță

Dacă aveți un fișier pe care trebuie să îl transferați de pe sistemul local pe o țintă la distanță, trebuie să utilizați următoarea sintaxă:

scp @:

Dacă sintaxa de mai sus poate părea complicată, un exemplu o va șterge:

scp test.txt [email protected]:/home/remote2/Documente/

În exemplul de mai sus:

  • test.txt este numele fișierului de transferat și se află în directorul curent al sistemului local.
  • test este numele de utilizator pe sistemul țintă.
  • 139.144.11.105 este adresa IP a sistemului țintă.
  • /home/remote2/Documents/ este locația de pe sistemul țintă în care va fi salvat fișierul transferat.

Copiați fișierele de la gazdă la distanță în țintă locală

Dacă trebuie să transferați un fișier de la o gazdă la distanță pe mașina dvs. locală, utilizați următoarea sintaxă a comenzii scp pe sistemul dumneavoastră Linux:

scp @:

De exemplu, să presupunem că trebuie să transferați un fișier numit test.py de la serverul la distanță la care lucrați, utilizați această comandă:

scp [email protected]:/home/test/test1.py ~/test1.py

În acest exemplu:

  • test este numele de utilizator al gazdei de la distanță.
  • 10.10.11.113 este adresa IP a gazdei de la distanță.
  • /home/test/test1.py este calea fișierului care urmează să fie transferat de la gazda la distanță.
  • ~/test1.py este numele fișierului după ce este transferat pe mașina locală și stocat în directorul principal.

Transferați fișiere de la o gazdă la distanță la o altă țintă la distanță

Cu comanda scp, puteți nu numai să transferați fișiere între sistemul dvs. local și o mașină la distanță, ci și să transferați fișiere între două sisteme la distanță. Dar, înainte de a putea transfera fișiere de la un sistem la distanță la un alt sistem la distanță, este recomandat să generați o cheie ssh privată și o cheie ssh publică pe sistemul sursă și să stocați o copie a cheii publice în sistemul de destinație.

  7 motive pentru care ar trebui să treci la Linux

În general, utilizatorii se plâng de eroarea „Verificarea cheii gazdă eșuată” atunci când transferă fișiere între două sisteme la distanță. Pentru a ocoli eroarea, utilizați o cheie ssh ca măsură suplimentară. Am explicat cum poți face asta chiar aici:

1. Generați o pereche de chei publice/private pe serverul sursă cu această comandă:

ssh-keygen -t

2. Pentru algoritmii de criptare, puteți folosi „rsa”, care este algoritmul cel mai frecvent utilizat sau orice alt algoritm la alegere.

3. Apoi, vi se va cere să alegeți locația pentru a stoca cheia ssh. Îl puteți stoca fie în orice locație la alegere, fie în locația implicită.

4. Pentru expresia de acces, puteți introduce orice alegere sau lăsați necompletat apăsând Enter.

5. Apoi, copiați cheia publică pe serverul de destinație folosind comanda de mai jos. Cu aceasta, puteți chiar să vă conectați la sistemul de destinație fără o parolă folosind ssh.

ssh-copy-id @

Notă: metoda de conectare fără parolă va funcționa numai pentru utilizatorul pentru care ați generat cheia ssh.

6. După ce ați creat și stocat cheia ssh pe serverul la distanță, utilizați această sintaxă a comenzii scp pentru a schimba fișiere între două sisteme la distanță care rulează Linux:

scp @: @:

Să presupunem că trebuie să transferați un fișier numit test.txt de la o gazdă la distanță la un alt receptor la distanță, utilizați comanda:

scp [email protected]:/home/test1/test.txt [email protected]:/home/remote2/Documents/test1.txt

În acest exemplu:

  • remote1 este numele utilizatorului din gazda expeditorului de la distanță
  • 10.10.11.113 este adresa IP a gazdei expeditorului de la distanță
  • /home/test1/test.txt este calea către fișierul care urmează să fie trimis
  • remote2 este numele utilizatorului din ținta receptorului de la distanță
  • 10.11.27.111 este adresa IP a țintei receptorului de la distanță
  • /home/remote2/Documents/test1.txt este numele și calea care trebuie salvate pentru a fi primit fișierul.
  Cum să joci Baldur's Gate 3 pe Linux

Transferați mai multe fișiere folosind comanda scp

Transferul mai multor fișiere unul câte unul poate fi o sarcină obositoare pentru oricine. În schimb, puteți utiliza sintaxa de mai jos pentru a schimba fișiere folosind comanda scp pe Linux:

scp @:

De exemplu – Să presupunem că trebuie să trimiteți patru fișiere, inclusiv test1.txt, test2.py, test3.sh și test4.c, către un receptor de la distanță, puteți utiliza comanda de mai jos:

scp -P 22 test1.txt test2.py test3.sh test4.c [email protected]:/home/remote_1/Documents

Să înțelegem cum funcționează comanda din exemplu și ce face:

  • -p 2222 este folosit pentru a specifica conectarea prin portul 22
  • test1.txt test2.py test3.sh test4.c sunt numele fișierelor care urmează să fie transferate
  • remote_1 este numele de utilizator al sistemului receptor
  • 10.10.11.113 este adresa IP a receptorului
  • /home/remote_1/Documents se referă la calea de stocare a fișierului primit.

Puteți folosi chiar și metacaractere pentru a trimite mai multe fișiere cu aceeași extensie, așa cum se arată mai jos:

scp . @:

De exemplu, dacă trebuie să trimiteți toate fișierele .py către un server la distanță, utilizați comanda scp de mai jos în terminalul Linux:

scp *.py [email protected]:/home/remote_1/

Aici,

  • *.py înseamnă toate fișierele Python
  • remote1 este numele de utilizator al receptorului
  • 10.10.11.113 este adresa IP a receptorului
  • /home/remote_1/ este locația pentru a stoca fișierul primit

întrebări frecvente

Transferul fișierelor SCP este sigur?

Secure Copy Protocol sau scp este un protocol care se bazează pe tehnologia SSH și utilizează criptarea și autentificarea pentru schimbul de fișiere între două gazde. Acest lucru asigură securitatea și integritatea completă a datelor între cele două gazde.

Este SCP mai sigur decât SFTP?

Atât protocoalele SCP, cât și SFTP sunt la egalitate în ceea ce privește securitatea. Principalul avantaj al utilizării scp peste SFTP este vitezele rapide de transfer, care sunt utile în special în rețelele cu latență ridicată.

Transferați fișiere în siguranță folosind comanda scp în Linux

La un moment dat, fiecare utilizator trebuie să schimbe unele fișiere prin rețea. Comanda scp facilitează transferul fișierelor în siguranță și eficient, chiar și într-o rețea cu latență ridicată. Cu siguranță, cunoașterea diferitelor opțiuni și sintaxei scp poate fi de asemenea utilă. De asemenea, puteți consulta ghidurile noastre despre cum să redenumiți un fișier în Linux și despre cum să ștergeți un fișier în Linux pentru a vă îmbunătăți și mai mult abilitățile de gestionare a fișierelor pe sistemul de operare. Sperăm că acest articol v-a ajutat să învățați cum să utilizați comanda scp pentru a transfera fișiere pe computerele Linux. Dacă întâmpinați probleme în timp ce utilizați comanda, anunțați-ne în secțiunea de comentarii.