Economisiți 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul: Skills Începeți
Secțiuni
Linux Securitate

Copierea Fișierelor via SSH: Ghid Complet pentru SCP, rsync și SFTP

SSH (Secure Shell) este coloana vertebrală a managementului securizat al serverelor la distanță. Indiferent dacă ești un developer care implementează cod, un sysadmin care gestionează infrastructura, sau un utilizator avansat care menține un mediu VPS Hosting, transferul securizat de fișiere între mașini este o sarcină pe care o vei efectua constant.

Acest ghid cuprinzător acoperă fiecare metodă majoră pentru copierea fișierelor prin SSH — inclusiv SCP, rsync, SFTP și automatizarea bazată pe chei — cu sintaxă din lumea reală, exemple practice și sfaturi de expert pentru a te ajuta să lucrezi mai rapid și mai securizat.

De ce să folosești SSH pentru transferuri de fișiere?

disruptive

Înainte de a aprofunda în instrumente, merită să înțelegi de ce transferul de fișiere bazat pe SSH este standardul industriei pentru administratorii de servere și dezvoltatori.

  • Criptare end-to-end: Fiecare byte de date — inclusiv acreditări, comenzi și conținut de fișiere — este criptat în tranzit folosind algoritmi criptografici moderni. Aceasta face transferurile SSH imune la packet sniffing și atacuri man-in-the-middle.
  • Niciun software suplimentar necesar: SSH este pre-instalat pe practic fiecare sistem Linux/Unix și este disponibil nativ pe Windows 10+ și macOS.
  • Versatilitate: O singură conexiune SSH poate gestiona sesiuni shell interactive, transferuri de fișiere, port forwarding și scripting automatizat.
  • Ușor de automatizat: SSH se integrează perfect cu cron jobs, CI/CD pipelines și scripturi de backup, permițând transferuri de fișiere complet automatizate și fără parolă.
  • Fiabilitate: Conexiunile SSH gestionează întreruperile de rețea cu ușurință, mai ales atunci când sunt combinate cu instrumente precum rsync.

Metoda 1: Copierea Fișierelor cu SCP (Secure Copy Protocol)

disruptive

SCP este cel mai simplu și cel mai utilizat instrument pentru transferuri de fișiere unice peste SSH. Funcționează prin valorificarea conexiunii SSH existente pentru a copia în siguranță fișiere între gazde.

1) Sintaxa de bază SCP

scp [options] [source] [destination]

2) Încărcați un fișier de la mașina locală pe serverul la distanță

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

Detalii:

/path/to/local/filefișierul pe care doriți să-l transferați pe mașina locală
username@remote_hostnumele de utilizator SSH și numele de gazdă sau adresa IP a serverului
/path/to/remote/destinationdirectorul țintă sau calea fișierului pe serverul la distanță

3) Descărcați un fișier de pe serverul la distanță pe mașina locală

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

Pur și simplu inversați sursa și destinația pentru a extrage un fișier de pe server pe mașina locală.

4) Copiați un director întreg în mod recursiv

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

Indicatorul -r spune SCP să copieze directorul și tot conținutul acestuia în mod recursiv, inclusiv subdirectoarele imbricate.

5) Opțiuni SCP utile

OpțiuneDescriere
-P [port]Specificați un port SSH personalizat (notă: majusculă -P, spre deosebire de minusculă -p a SSH)
-CActivați compresia pentru transferuri mai rapide pe conexiuni lente
-i [identity_file]Utilizați o cheie privată SSH specifică pentru autentificare
-l [limit]Limitați utilizarea lățimii de bandă în Kbit/s
-qMod silențios — suprimați ieșirea de progres
-vMod detaliat — util pentru depanarea problemelor de conexiune

6) Când să utilizați SCP

SCP este ideal pentru transferuri rapide și unice de fișiere unde simplitatea contează. Nu necesită nicio configurare și funcționează din start pe orice sistem cu SSH instalat. Cu toate acestea, pentru directoare mari sau transferuri repetate, rsync este o alegere semnificativ mai bună.

Metoda 2: Copierea Fișierelor cu rsync

disruptive

rsync este alegerea profesionistului pentru sincronizarea și transferul de fișiere peste SSH. Caracteristica sa principală este delta transfer: în loc să copieze fișiere întregi, rsync analizează sursa și destinația și transferă doar porțiunile modificate. Aceasta economisește o cantitate enormă de timp și lățime de bandă atunci când se ocupă de fișiere mari sau directoare care sunt actualizate frecvent.

1) Sintaxa de bază rsync

rsync [options] [source] [destination]

2) Încărcați un Fișier de la Mașina Locală pe Serverul Distant

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

3) Sincronizați un Întreg Director pe un Server Distant

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

Important: Observați bara oblică finală / după directorul sursă. Cu o bară oblică finală, rsync copiază conținutul directorului. Fără ea, rsync copiază directorul însuși ca subdirector al destinației.

4) Oglindire unui Director (Ștergerea Fișierelor Eliminate din Sursă)

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

Steagul –delete asigură că fișierele șterse din sursă sunt, de asemenea, eliminate din destinație, păstrând ambele locații perfect sincronizate.

5) Utilizați un Port SSH Personalizat

rsync -avz -e "ssh -p 2222" /path/to/local/directory/ username@remote_host:/path/to/remote/destination/

6) Opțiuni rsync Utile

OpțiuneDescriere
-aModul arhivă: păstrează permisiunile, marcajele de timp, legăturile simbolice și proprietatea
-vVerbose: afișează progresul fișier cu fișier în timpul transferului
-zCompresie: reduce datele transferate peste rețea
–deleteȘterge fișierele la destinație care nu mai există la sursă
–progressAfișează progresul în timp real pentru fiecare fișier
–excludeExcludeți fișiere sau modele specifice (de ex., –exclude ‘*.log’)
-n sau –dry-runSimulează transferul fără a copia efectiv nimic
-e “ssh -p [port]”Specificați un port SSH personalizat
–bwlimit=[KB/s]Limitați viteza de transfer pentru a evita saturarea conexiunii

7) Când să Utilizați rsync

Utilizați rsync pentru copii de rezervă, implementări și orice sarcină de sincronizare recurentă. Este deosebit de puternic atunci când gestionați baze de cod mari, biblioteci media sau exporturi de baze de date pe un Server Dedicat unde eficiența lățimii de bandă și integritatea datelor sunt critice.

Metoda 3: Copierea Fișierelor Între Două Servere Îndepărtate

disruptive

O capacitate mai puțin cunoscută dar extrem de utilă a ambelor SCP și rsync este abilitatea de a transfera fișiere direct între două servere îndepărtate — fără a dirija datele prin mașina locală. Aceasta este neprețuită atunci când migrați servere sau sincronizați date între instanțe cloud.

1) Copierea Fișierelor Între Două Servere Îndepărtate cu SCP

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

2) Copierea Fișierelor Între Două Servere Îndepărtate cu rsync

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

Notă: Pentru ca transferurile de la server la server să funcționeze, serverul sursă trebuie să poată stabili o conexiune SSH la serverul de destinație. Este posibil să trebuiască să configurați chei SSH pe serverul sursă sau să utilizați SSH agent forwarding (ssh -A).

3) Transfer de la Server la Server prin SSH Tunneling (Metodă Alternativă)

Dacă SSH direct de la server la server nu este posibil din cauza restricțiilor firewall, puteți direcționa transferul prin mașina locală folosind tar și ssh:

ssh username1@remote_host1 "tar czf - /path/to/source" | ssh username2@remote_host2 "tar xzf - -C /path/to/destination"

Aceasta transmite un arhiv comprimat de la serverul 1 direct în serverul 2 prin sesiunea terminalului local.

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

disruptive

SFTP oferă o experiență interactivă, asemănătoare FTP peste o conexiune SSH criptată. Spre deosebire de SCP, care este un instrument cu o singură comandă, SFTP deschide o sesiune persistentă în care puteți răsfoi directoare, încărca, descărca, redenumi și șterge fișiere interactiv.

1) Pornirea unei sesiuni SFTP

sftp username@remote_host

Veți fi direcționat către o linie de comandă SFTP (sftp>), din care puteți executa următoarele comenzi:

2) Comenzi SFTP esențiale

ComandăDescriere
lsListează fișierele din directorul remote curent
llsListează fișierele din directorul local curent
cd /remote/pathSchimbă directorul remote
lcd /local/pathSchimbă directorul local
put /local/file /remote/destinationÎncarcă un fișier pe serverul remote
get /remote/file /local/destinationDescarcă un fișier de pe serverul remote
mput *.txtÎncarcă mai multe fișiere care se potrivesc unui model
mget *.logDescarcă mai multe fișiere care se potrivesc unui model
mkdir /remote/newdirCreează un director pe serverul remote
rm /remote/fileȘterge un fișier pe serverul remote
exit sau quitÎnchide sesiunea SFTP

3) Conectarea la un port SSH personalizat prin SFTP

sftp -P 2222 username@remote_host

4) Când să utilizați SFTP

SFTP este cel mai potrivit pentru sesiuni interactive de gestionare a fișierelor — de exemplu, atunci când trebuie să răsfoiți o structură de directoare remote, să descărcați selectiv fișiere jurnal sau să încărcați fișiere de configurare pe un server web. Mulți clienți GUI (cum ar fi FileZilla, Cyberduck și WinSCP) utilizează SFTP ca protocol subiacent, ceea ce îl face accesibil și utilizatorilor non-tehnici.

Metoda 5: Automatizarea Transferurilor de Fișiere cu Autentificare SSH Key

disruptive

Introducerea manuală a unei parole pentru fiecare transfer de fișier este ineficientă și incompatibilă cu automatizarea. Autentificarea bazată pe chei SSH rezolvă această problemă permițând logări fără parolă, criptografic sigure — o condiție prealabilă pentru orice flux de lucru de backup sau deployment automatizat.

1) Generează o Pereche de Chei SSH

Pe mașina locală, rulează:

ssh-keygen -t ed25519 -C "your_email@example.com"

Notă: ed25519 este algoritmul modern, recomandat. Folosește -t rsa -b 4096 dacă ai nevoie de compatibilitate cu sisteme mai vechi.

Urmează prompturile pentru a salva cheia (locația implicită: ~/.ssh/id_ed25519) și opțional setează o parolă pentru securitate suplimentară.

2) Copiază Cheia Publică pe Serverul Distant

ssh-copy-id username@remote_host

Aceasta adaugă cheia publică la fișierul ~/.ssh/authorized_keys pe serverul distant. Vei fi solicitat pentru parola o ultimă dată.

Dacă ssh-copy-id nu este disponibil, poți face acest lucru manual:

cat ~/.ssh/id_ed25519.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

3) Testează Autentificarea Fără Parolă

ssh username@remote_host

Dacă te conectezi fără a fi solicitat pentru o parolă, autentificarea bazată pe chei funcționează corect.

4) Automatizează Transferurile cu un Script Shell

Cu SSH fără parolă configurat, poți acum automatiza transferurile de fișiere în joburi cron sau scripturi:

#!/bin/bash
# Daily backup script
rsync -avz --delete /var/www/html/ username@backup_server:/backups/www/

Adaugă aceasta la crontab-ul tău (crontab -e) pentru a rula nocturn:

0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Depanarea Problemelor Comune de Transfer de Fișiere SSH

disruptive

Chiar și administratorii experimentați întâmpină probleme. Iată cele mai comune probleme și soluțiile lor:

Permission Denied (publickey)

  • Verificați că cheia publică este corect adăugată la ~/.ssh/authorized_keys pe serverul distant
  • Verificați că ~/.ssh are permisiuni 700 și authorized_keys are permisiuni 600
  • Confirmați că daemonul SSH permite autentificarea prin cheie (PubkeyAuthentication yes în /etc/ssh/sshd_config)

Connection Refused

  • Verificați că serviciul SSH este activ: systemctl status sshd
  • Verificați că portul corect este utilizat
  • Revizuiți regulile firewall: ufw status sau iptables -L

Viteza de Transfer Este Lentă

  • Activați compresia: adăugați -C la SCP sau -z la rsync
  • Utilizați o cifră mai rapidă: ssh -c aes128-ctr (mai puțin sigură dar mai rapidă pe conexiuni cu latență ridicată)
  • Pentru transferuri mari, considerați rsync cu –bwlimit pentru a evita saturarea rețelei

Host Key Verification Failed

  • Amprenta SSH a serverului distant s-a schimbat (ar putea indica o problemă de securitate sau o reconstrucție a serverului)
  • Eliminați cheia veche: ssh-keygen -R remote_host
  • Reconectați-vă și verificați amprenta nouă înainte de a o accepta

Alegerea Instrumentului Potrivit: SCP vs. rsync vs. SFTP

disruptive

CaracteristicăSCPrsyncSFTP
Ușurință în utilizare⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Transferuri delta
Sincronizare director✅ (recursiv)✅ (cu –delete)✅ (manual)
Mod interactiv
Automatizare✅ (cu scripturi)
Eficiență lățime de bandăScăzutăRidicatăScăzută
Cel mai bun pentruTransferuri rapide uniceCopii de rezervă și sincronizareNavigare interactivă

Securizarea transferurilor de fișiere SSH: Bune practici

disruptive

Indiferent de ce instrument utilizați, urmați aceste bune practici de securitate pentru a vă proteja serverele și datele:

  1. Dezactivați autentificarea prin parolă — Utilizați exclusiv chei SSH și setați PasswordAuthentication no în /etc/ssh/sshd_config
  2. Schimbați portul SSH implicit — Mutarea de la portul 22 reduce dramatic încercările automate de forță brută
  3. Utilizați fail2ban — Interziceți automat adresele IP care eșuează în mod repetat la autentificare
  4. Restricționați accesul SSH după IP — Utilizați reguli de firewall sau directive AllowUsers pentru a limita cine se poate conecta
  5. Mențineți SSH actualizat — Actualizați regulat OpenSSH pentru a corecta vulnerabilitățile cunoscute
  6. Utilizați algoritmi de cheie puternici — Preferați ed25519 sau rsa-4096 în loc de algoritmi mai vechi și mai slabi
  7. Securizați aplicațiile web — Combinați securitatea SSH cu un Certificat SSL pentru a cripta tot traficul către serviciile web

Întrebări Frecvente

disruptive

1) Care este diferența dintre SCP și SFTP?

SCP este un instrument de linie de comandă non-interactiv conceput pentru transferuri de fișiere rapide și cu o singură comandă. SFTP este un protocol interactiv care vă permite să răsfoiți, să gestionați, să încărcați și să descărcați fișiere într-o interfață bazată pe sesiuni. Ambele utilizează SSH pentru criptare.

2) Pot folosi rsync fără SSH?

Da — rsync are propriul mod daemon care funcționează fără SSH, dar este mai puțin sigur. Pentru orice transfer orientat spre internet, utilizați întotdeauna rsync peste SSH (rsync -e ssh).

3) Cum transfer fișiere dacă serverul meu folosește un port SSH non-standard?

Utilizați steagul -P cu SCP (scp -P 2222) sau opțiunea -e “ssh -p 2222” cu rsync. Pentru SFTP, utilizați sftp -P 2222.

4) Este SCP depreciat?

Dezvoltatorii OpenSSH au remarcat că protocolul subiacent al SCP are limitări și recomandă utilizarea SFTP sau rsync pentru fluxurile de lucru noi. Cu toate acestea, SCP rămâne disponibil pe scară largă și funcțional pe practic toate sistemele.

Concluzie

disruptive

Stăpânirea transferului de fișiere bazat pe SSH este o abilitate esențială pentru oricine gestionează servere, implementează aplicații sau întreține infrastructura la distanță. Fiecare instrument are locul său:

  • SCP este alegerea ta pentru transferuri rapide, simple și ocazionale
  • rsync este indispensabil pentru backup-uri, implementări și sincronizare eficientă a seturilor mari de date
  • SFTP excelează în sesiunile interactive în care trebuie să navighezi și să gestionezi fișiere pe parcurs

Combinarea acestor instrumente cu autentificarea prin chei SSH și practici solide de securitate îți oferă un flux de transfer de fișiere robust, automatizat și sigur care se scalează de la un singur cont de Shared Web Hosting până la arhitecturi complexe multi-server pe Dedicated Servers.

Dacă cauți un mediu de hosting fiabil și de înaltă performanță pentru a pune în practică aceste abilități, explorează planurile de VPS Hosting ale AlexHost — construite pentru dezvoltatori și sysadmini care cer acces root complet, stocare SSD și conectivitate de rețea de nivel enterprise.