Copierea fișierelor prin SSH ⋆ ALexHost SRL

Testați-vă abilitățile cu toate serviciile noastre de găzduire și beneficiați de 15% reducere!

Utilizați codul la finalizarea comenzii:

Skills
18.12.2024

Copierea fișierelor prin SSH

SSH (Secure Shell) este un protocol utilizat pe scară largă pentru accesarea și gestionarea în siguranță a serverelor la distanță printr-o conexiune criptată. Una dintre cele mai frecvente sarcini atunci când lucrați cu SSH este copierea de fișiere între computerul local și un server la distanță sau între două servere la distanță.

În acest articol, vom explora diferite modalități de copiere a fișierelor prin SSH, inclusiv utilizarea SCP (Secure Copy Protocol), rsync și alte metode.


De ce să utilizați SSH pentru transferuri de fișiere?

Utilizarea SSH pentru transferul de fișiere oferă mai multe avantaje:

  • Securitate: SSH criptează atât comanda, cât și datele în timpul transmisiei, asigurând protecția informațiilor sensibile.
  • Eficiență: SSH este rapid și fiabil, permițându-vă să transferați fișiere direct între sisteme fără a fi nevoie să vă conectați separat.
  • Automatizare: SSH poate fi integrat în scripturi, permițând transferuri automate de fișiere între servere sau mașini locale.

1. Copierea fișierelor cu SCP (Secure Copy Protocol)

SCP este unul dintre cele mai populare instrumente de copiere securizată a fișierelor prin SSH. Acesta vă permite să transferați fișiere de pe o mașină locală pe un server la distanță, de pe un server la distanță pe mașina dvs. locală sau între două servere la distanță.

Sintaxa de bază SCP:

scp [opțiuni] [sursă] [destinație]

Exemplul 1: Copierea unui fișier de pe mașina locală pe serverul de la distanță

scp /path/to/local/file username@remote_host:/path/to/remote/destination

În acest exemplu:

  • /path/to/local/file este calea către fișierul de pe computerul local.
  • username@remote_host este utilizatorul SSH și numele de gazdă sau adresa IP a serverului de la distanță.
  • /path/to/remote/destination este calea în care va fi stocat fișierul pe serverul de la distanță.

Exemplul 2: Copierea unui fișier de pe serverul de la distanță pe computerul local

scp username@remote_host:/path/to/remote/file /path/to/local/destination

În acest caz, fișierul este transferat de la serverul de la distanță la computerul local.

Exemplul 3: Copierea recursivă a unui director

Pentru a copia un întreg director, utilizați opțiunea -r (recursiv):

scp -r /path/to/local/directory username@remote_host:/path/to/remote/destination

Aceasta va transfera directorul și tot conținutul său pe serverul de la distanță.

Opțiuni SCP utile:

  • -P [port]: Specificați portul SSH dacă este diferit de cel implicit (22).
  • -C: Activați compresia în timpul transferului pentru copierea mai rapidă a fișierelor.
  • -i [identity_file]: Utilizează o cheie privată SSH specifică pentru autentificare.

2. Copierea fișierelor cu rsync

rsync este un alt instrument puternic pentru transferul de fișiere prin SSH. Acesta este adesea preferat pentru transferurile de fișiere mari sau repetitive, deoarece copiază doar modificările între sursă și destinație, economisind timp și lățime de bandă.

Sintaxa de bază rsync:

rsync [opțiuni] [sursă] [destinație]

Exemplul 1: Copierea unui fișier de pe mașina locală pe serverul de la distanță

rsync -avz /path/to/local/file username@remote_host:/path/to/remote/destination

Exemplul 2: Copierea unui director cu rsync

rsync -avz /path/to/local/directory/ username@remote_host:/path/to/remote/destination/

Opțiuni rsync utile:

  • -a: Modul de arhivare, care păstrează legăturile simbolice, permisiunile, marcajele temporale și proprietatea asupra fișierelor.
  • -v: Modul Verbose pentru a afișa progresul în timpul transferului.
  • -z: Activați compresia pentru a accelera transferul.
  • –delete: Elimină fișierele din destinație care nu mai există în sursă.
  • -e “ssh -p [port]”: Specificați un port SSH personalizat.

3. Copierea fișierelor între două servere la distanță

Folosind SSH, puteți copia fișiere direct între două servere la distanță. Atât SCP, cât și rsync suportă acest lucru.

Exemplul 1: Copierea fișierelor între două servere la distanță cu SCP

scp username1@remote_host1:/path/to/file username2@remote_host2:/path/to/destination

Exemplul 2: Copierea fișierelor între două servere la distanță cu rsync

rsync -avz username1@remote_host1:/path/to/file username2@remote_host2:/path/to/destination

Acest lucru este deosebit de util pentru a transfera fișiere între servere fără a fi nevoie să le descărcați mai întâi pe computerul dvs. local.


4. Copierea fișierelor cu SFTP (SSH File Transfer Protocol)

SFTP este o altă metodă de transfer securizat al fișierelor prin SSH. Este similară cu FTP, dar utilizează SSH pentru a asigura criptarea. SFTP este utilizat de obicei în sesiuni interactive, dar poate fi și automatizat.

Utilizarea SFTP:

Pentru a porni o sesiune SFTP, executați următoarea comandă:

sftp nume_utilizator@host_îndepărtat

Odată intrat în promptul SFTP, puteți utiliza comenzi precum:

  • put /path/to/local/file /path/to/remote/destination: Încărcați un fișier de pe calculatorul dvs. local pe serverul de la distanță.
  • get /path/to/remote/file /path/to/local/destination: Descărcați un fișier de pe serverul de la distanță pe computerul local.
  • mput și mget: Pentru a încărca sau descărca mai multe fișiere simultan.

Pentru a ieși din sesiunea SFTP, tastați exit sau quit.


5. Automatizarea transferurilor de fișiere cu chei SSH

Pentru transferurile repetate de fișiere, este o idee bună să configurați autentificarea bazată pe chei SSH, astfel încât să nu fie nevoie să introduceți parola de fiecare dată.

Pasul 1: Generarea perechii de chei SSH (dacă nu aveți una)

Pe calculatorul dvs. local, executați:

ssh-keygen -t rsa

Aceasta va genera o pereche de chei publice și private.

Pasul 2: Copiați cheia publică pe serverul de la distanță

Utilizați următoarea comandă pentru a copia cheia dvs. publică pe serverul de la distanță:

ssh-copy-id nume_utilizator@host_de_la_terasa

Acum, vă puteți conecta și transfera fișiere fără a fi nevoie să introduceți o parolă, făcând automatizarea mai ușoară.


Concluzie

Copierea fișierelor prin SSH este o modalitate sigură și eficientă de a transfera date între computerul local și un server la distanță sau între două servere la distanță. Indiferent dacă utilizați SCP, rsync sau SFTP, SSH oferă transferuri de fișiere criptate care vă protejează datele de interceptare. Instrumente precum SCP sunt simple pentru transferuri punctuale, în timp ce rsync este ideal pentru sarcini de sincronizare continue, în special pentru fișiere sau directoare mari. Înțelegerea acestor instrumente vă va ajuta să gestionați transferurile de fișiere mai eficient, în special într-un mediu de servere la distanță.

Testați-vă abilitățile cu toate serviciile noastre de găzduire și beneficiați de 15% reducere!

Utilizați codul la finalizarea comenzii:

Skills