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:
Exemplul 1: Copierea unui fișier de pe mașina locală pe serverul de la distanță
Î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
Î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):
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:
Exemplul 1: Copierea unui fișier de pe mașina locală pe serverul de la distanță
Exemplul 2: Copierea unui director cu rsync
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
Exemplul 2: Copierea fișierelor între două servere la distanță cu rsync
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ă:
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:
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ță:
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ță.