SCP este strâns legat de protocolul SSH și s-a născut într-adevăr din aceeași idee.
SCP se asigură că datele rămân confidențiale și nemodificate în timpul tranzitului, ca o extensie a protocolului SSH.
Mai întâi, să înțelegem cum funcționează acest SCP și apoi vom vedea comenzile scp.
Cuprins
Ce este SCP?
SCP înseamnă Secure Copy Protocol.
Este o metodă sigură și eficientă pentru copierea fișierelor și directoarelor între gazde locale și la distanță sau între două gazde la distanță.
Este utilizat pe scară largă pentru transferul de date în siguranță printr-o rețea. SCP se bazează pe SSH (Secure Shell) pentru a stabili o conexiune sigură și a cripta datele în timpul tranzitului.
Indiferent dacă trebuie să mutați un singur fișier sau un întreg director, SCP oferă o soluție fiabilă pentru transferurile de fișiere de la distanță.
Cum funcționează SCP?
SCP este construit pe deasupra protocolului SSH – care este un protocol de rețea criptografic pentru autentificare și executare de comenzi sigure de la distanță. Utilizează aceleași mecanisme de securitate ca și SSH, inclusiv criptarea și autentificarea, pentru a proteja datele în timpul transmisiei.
Când folosește SCP, un utilizator inițiază o comandă de copiere pe mașina locală care specifică fișierul sursă și locația de destinație pe o mașină la distanță. SCP stabilește o conexiune SSH la sistemul de la distanță și apoi copiază în siguranță fișierele de la sursă la destinație.
Când să folosiți SCP?
SCP este deosebit de util în următoarele scenarii.
Backup la distanță de server
SCP vă permite să faceți copii de siguranță ale fișierelor de pe un server la distanță pe mașina dvs. locală sau invers, ceea ce asigură redundanța datelor și recuperarea în caz de dezastru.
Implementarea aplicațiilor
De asemenea, simplifică procesul prin copierea în siguranță a fișierelor necesare în fiecare sistem țintă atunci când implementați aplicații pe mai multe servere,
Transferarea fișierelor mari
SCP oferă o metodă alternativă de încredere și sigură de transmitere a datelor pentru fișiere mari care ar putea fi prea mari pentru a fi trimise ca atașamente de e-mail.
Partajarea securizată a fișierelor
SCP se asigură că datele sunt păstrate criptate pe tot parcursul tranzitului în timp ce trimite fișiere confidențiale altor persoane.
Colaborare la distanță
SCP poate fi folosit pentru a partaja fișiere în siguranță cu colaboratorii sau membrii echipei din diferite locații.
Sintaxa comenzii SCP
Înainte de a începe să folosiți comanda SCP, să începem prin a înțelege sintaxa de bază.
Sintaxa comenzii SCP arată astfel:
scp [options] [source] [destination]
Explicația sintaxei
Opțiuni
Acestea sunt steaguri opționale care modifică comportamentul comenzii SCP. Puteți utiliza diverse opțiuni pentru a personaliza procesul de transfer. Iată câteva opțiuni comune:
-r: Copiază recursiv directoarele și conținutul acestora.
-p: Păstrați permisiunile, marcajele de timp și modurile fișierului original.
-P: Specifică numărul portului pentru conexiunea SSH.
-i: Specifică fișierul cheii private pentru autentificarea SSH.
-C: Folosiți compresia pentru a accelera transferul de date.
-l: Limitează lățimea de bandă utilizată pentru transfer (în Kbit/s).
-v: Modul Verbose – afișează mesaje de depanare în timpul transferului.
-o: Transmite o opțiune clientului SSH. Poate fi folosit pentru a dezactiva verificarea strictă a cheii gazdei.
Sursă
Sursa specifică fișierul sau directorul pe care doriți să îl copiați. Poate fi o cale locală sau o cale la distanță – în funcție de context.
Destinaţie
Destinația specifică unde doriți să copiați sursa. Ca și sursa, poate fi și o cale locală sau o cale la distanță.
Exemple de comenzi
#1. Copiați un fișier de pe serverul local pe serverul de la distanță
scp /path/to/local/file.txt user@remotehost:/path/to/destination/
/path/to/local/file.txt: Acesta este fișierul sursă pe care doriți să-l copiați de pe computerul local.
user@remotehost: Înlocuiți utilizatorul cu numele utilizatorului de la distanță și gazda la distanță cu numele de gazdă sau adresa IP a serverului la distanță.
/path/to/destination/: Aceasta este calea de destinație pe serverul de la distanță unde va fi copiat fișierul.
Exemplu
În cazul meu, am ales un server la distanță pentru transferul fișierului.
Nume de utilizator gazdă la distanță – abhishekvarma
Adresă gazdă de la distanță – 192.168.29.70
scp /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
În timpul conectării la o mașină de la distanță, acesta solicită parola. Aici am selectat un fișier zip de copiat.
Ieșire
Și rezultatul va arăta astfel dacă nu există nicio eroare în conectarea la un server la distanță.
sample.zip 100% 20KB 717.9KB/s 00:00
#2. Copiați un fișier de la telecomandă pe mașina locală
scp user@remotehost:/path/to/remote/file.txt /path/to/local/destination/
La fel ca mai sus, înlocuiți adresa utilizatorului și a gazdei de la distanță.
Exemplu
scp [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop
Ieșire
Aceasta este doar exemplul de ieșire în cazul meu. Timpul variază în funcție de viteza conexiunii.
sample.zip 100% 20KB 51.2KB/s 00:00
#3. Copiați un director recursiv
scp user@remotehost:/path/to/remote/file.txt /path/to/local/destination/
Aici indicatorul „-r” îi spune SCP să copieze directoare recursiv (inclusiv subdirectoare și conținutul acestora).
Exemplu
scp -r /home/vboxuser/Desktop [email protected]:/Users/abhishekvarma/Desktop
Aici, am menționat întregul director pentru a copia fișierele.
Ieșire
sample.zip 100% 20KB 1.0MB/s 00:00 Screenshot from 2023-08-13 21-45-23.png 100% 27KB 1.5MB/s 00:00 .swp 100% 12KB 894.2KB/s 00:00 .help.swp 100% 12KB 780.4KB/s 00:00
#4. Copiați fișierele care se potrivesc cu un model
scp /path/to/local/*.txt user@remotehost:/path/to/destination/
*.txt – Acesta este un model de wildcard care se potrivește cu toate fișierele cu extensia .txt din directorul local specificat. Căile sursă și destinație sunt aceleași ca înainte.
Exemplu
scp /home/vboxuser/Desktop/locfolder/*.png [email protected]:/Users/abhishekvarma/Desktop
Ieșire
Aici, am încercat cu o extensie .png.
Screenshot from 2023-08-13 21-45-23.png 100% 27KB 1.4MB/s 00:00 Screenshot from 2023-08-13 21-55-28.png 100% 24KB 1.7MB/s 00:00 Screenshot from 2023-08-13 22-04-03.png 100% 38KB 2.1MB/s 00:00
#5. Păstrați atributele fișierului
scp -p /path/to/local/file.txt user@remotehost:/path/to/destination/
Aici indicatorul „-p” păstrează timpii de modificare, timpii de acces și modurile fișierului sursă la copiere.
Exemplu
scp -p /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Ieșire
sample.zip 100% 20KB 420.0KB/s 00:00
#6. Specificați un alt port SSH
scp -P 22 /path/to/local/file.txt user@remotehost:/path/to/destination/
Indicatorul „-P” specifică un port SSH diferit (22 în acest caz) pentru conexiunea SCP. Puteți folosi orice port doriți.
Exemplu
scp -P 22 /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Ieșire
sample.zip 100% 20KB 1.2MB/s 00:00
#7. Copiați cu compresie
scp -C /path/to/local/file.txt user@remotehost:/path/to/destination/
Acest flag „-C” permite compresia în timpul transferului, reducând posibil dimensiunea datelor transferate. Adresa sursă și destinație sunt aceleași cu cele explicate anterior.
Exemplu
scp -C /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Ieșire
sample.zip 100% 20KB 985.8KB/s 00:00
#8. Ieșire detaliată pentru depanare
scp -v /path/to/local/file.txt user@remotehost:/path/to/destination/
Această opțiune „-v” activează ieșirea verbosă, care oferă informații mai detaliate în timpul procesului de transfer.
Exemplu
scp -v /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Ieșire
Ieșirea eșantionului va arăta astfel.
Executing: program /usr/bin/ssh host 192.168.29.70, user abhishekvarma, command scp -v -t /Users/abhishekvarma/Desktop OpenSSH_8.9p1 Ubuntu-3ubuntu0.3, OpenSSL 3.0.2 15 Mar 2022 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files debug1: /etc/ssh/ssh_config line 21: Applying options for * debug1: Connecting to 192.168.29.70 [192.168.29.70] port 22. debug1: Connection established. debug1: identity file /root/.ssh/id_rsa type -1 debug1: identity file /root/.ssh/id_rsa-cert type -1 debug1: identity file /root/.ssh/id_ecdsa type -1 debug1: identity file /root/.ssh/id_ecdsa-cert type -1 debug1: identity file /root/.ssh/id_ecdsa_sk type -1 debug1: identity file /root/.ssh/id_ecdsa_sk-cert type -1
#9. Copiați de la distanță în local cu ieșire detaliată
scp -v user@remotehost:/path/to/remote/file.txt /path/to/local/destination/
Aceleași explicații ca exemplul anterior, cu rolurile locațiilor locale și la distanță inversate.
Exemplu
scp -v [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop
Ieșire
Ieșirea va arăta astfel.
Executing: program /usr/bin/ssh host 192.168.29.70, user abhishekvarma, command scp -v -f /Users/abhishekvarma/Desktop/sample.zip OpenSSH_8.9p1 Ubuntu-3ubuntu0.3, OpenSSL 3.0.2 15 Mar 2022 debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 21: Applying options for * debug1: Connecting to 192.168.29.70 [192.168.29.70] port 22. debug1: Connection established. debug1: identity file /root/.ssh/id_rsa type -1 debug1: identity file /root/.ssh/id_rsa-cert type -1 debug1: identity file /root/.ssh/id_ecdsa type -1 debug1: identity file /root/.ssh/id_ecdsa-cert type -1 debug1: identity file /root/.ssh/id_ecdsa_sk type -1 debug1: identity file /root/.ssh/id_ecdsa_sk-cert type -1
#10. Copiați folosind o cheie SSH diferită
scp -i /path/to/private_key.pem /path/to/local/file.txt user@remotehost:/path/to/destination/
Acest flag „-i /path/to/private_key.pem” specifică o cheie privată SSH diferită pentru autentificare.
Exemplu
scp -i /path/to/private_key.pem /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Ieșire
Dacă aveți o cheie privată, atunci o puteți utiliza sau o puteți utiliza pe cea implicită.
sample.zip 100% 20KB 1.1MB/s 00:00
#11. Copiați mai multe fișiere pe serverul de la distanță
scp file1.txt file2.txt user@remotehost:/path/to/destination/
Această comandă copiază fișierul 1.txt și fișierul 2.txt din directorul local în destinația specificată pe serverul de la distanță.
Exemplu
scp /home/vboxuser/Desktop/image.png /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Ieșire
image.png 100% 39KB 1.4MB/s 00:00 sample.zip 100% 20KB 1.5MB/s 00:00
#12. Copiați un fișier de la distanță cu un nume diferit
scp user@remotehost:/path/to/remote/file.txt /path/to/local/newfilename.txt
Această comandă copiează fișierul.txt de pe serverul de la distanță în directorul local, redenumindu-l ca numefișier nou.txt în timpul procesului.
Exemplu
scp [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop/newfile.zip
Ieșire
Extensiile de fișiere vechi și noi ar trebui să fie aceleași în timpul executării acestei comenzi.
sample.zip 100% 20KB 28.7KB/s 00:00
#13. Copierea cu o limită de lățime de bandă specifică
scp -l 1000 /path/to/local/file.txt user@remotehost:/path/to/destination/
Acest indicator „-l” specifică o limită de lățime de bandă în Kbps (1000 Kbps în acest caz) pentru transfer.
Exemplu
scp -l 300 /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Ieșire
sample.zip 100% 20KB 31.3KB/s 00:00
#14. Copierea fișierelor și păstrarea legăturilor simbolice
scp -rp /path/to/local/source/ user@remotehost:/path/to/destination/
Indicatorul „-p” păstrează atributele fișierului, iar indicatorul -r copiază recursiv directoare. Această comandă păstrează, de asemenea, legăturile simbolice în timpul copierii.
Exemplu
scp -rp /home/vboxuser/Desktop/image.png [email protected]:/Users/abhishekvarma/Desktop
Ieșire
image.png 100% 39KB 1.8MB/s 00:00
#15. Copierea profundă a fișierelor cu compresie
scp -vC /path/to/local/file.txt user@remotehost:/path/to/destination/
Această comandă combină atât ieșirea verbosă (-v) cât și compresia (-C) în timpul transferului fișierului.
Exemplu
scp -vC /home/vboxuser/Desktop/image.png [email protected]:/Users/abhishekvarma/Desktop
Ieșire
Ieșirea va arăta astfel.
scp: debug1: fd 3 clearing O_NONBLOCK Sending file modes: C0664 40050 image.png Sink: C0664 40050 image.png image.png d 6 clearing O_NONBLOCK scp: debug1: fd • clearing O_NONBLOCK image.png debug1: client_input_channel_req: channel ✪ type exit-status reply debug1: channel 0: free: client-session, channels 1 Transferred: sent 40220, received 2576 bytes, in 0.1 seconds Bytes per second: sent 352570.0, received 22581.3 root@ubuntu: ~ debug1: Exit status 0 debug1: compress outgoing: raw data 40287, compressed 38198, factor 0.95 debug1: compress incoming: raw data 792, compressed 757, factor 0.96
#16. Copiere între două servere la distanță
Dacă doriți să transferați fișiere de la un server la distanță la altul, atunci puteți utiliza această comandă.
scp user1@remotehost1:/path/to/remote/file.txt user2@remotehost2:/path/to/destination/
Această comandă transferă direct fișierul.txt de la remotehost1 la remotehost2.
Exemplu
scp user1@remotehost1:/path/to/remote/file.txt [email protected]:/Users/abhishekvarma/Desktop
Ieșire
file.txt 100% 512KB 512.0KB/s 00:00
Dacă există erori sau probleme în timpul transferului – rezultatul poate afișa mesaje de eroare care oferă informații despre ce a mers prost.
ssh: connect to host source.example.com port 22: Connection refused lost connection
În acest caz, mesajul de eroare sugerează că conexiunea SSH la serverul sursă a fost refuzată. Poate fi din diverse motive, cum ar fi numele de gazdă incorecte, adresa IP, portul sau problemele cu configurația SSH.
Întrebări frecvente despre SCP
Iată câteva întrebări frecvente legate de protocolul SCP, împreună cu răspunsurile acestora.
Cum diferă SCP de FTP sau SFTP?
FTP înseamnă File Transfer Protocol.
SFTP înseamnă File Transfer Protocol. Acestea sunt ambele folosite pentru transferuri de fișiere.
SCP operează prin SSH și oferă atât criptare, cât și autentificare într-un singur protocol, ceea ce îl face mai sigur și mai eficient.
Când ar trebui să folosesc SCP?
SCP este cel mai potrivit pentru scenariile în care sunt necesare transferuri de fișiere sigure și fiabile, cum ar fi copii de rezervă la distanță, implementarea software-ului, distribuirea fișierelor de configurare și colaborarea între membrii echipei.
Este SCP compatibil cu adresele IPv6?
Da, SCP acceptă atât adresele IPv4, cât și IPv6, ceea ce vă permite să transferați fișiere prin rețele care utilizează orice schemă de adresare.
Concluzie✍️
Sper că ați găsit acest articol util pentru a afla despre SCP și cum funcționează.
Ați putea fi, de asemenea, interesat să aflați despre comenzile Linux pentru administratorul de sistem