SCP je blisko povezan sa SSH protokolom i, zapravo, potiče iz iste zamisli.
Kao proširenje SSH protokola, SCP obezbeđuje da podaci budu poverljivi i nepromenjeni tokom prenosa.
Prvo ćemo objasniti kako SCP funkcioniše, a zatim ćemo se upoznati sa SCP komandama.
Šta je SCP?
SCP je skraćenica od Secure Copy Protocol (Protokol za bezbedno kopiranje).
Predstavlja siguran i efikasan način kopiranja fajlova i direktorijuma između lokalnog i udaljenog računara, kao i između dva udaljena računara.
Naširoko se koristi za bezbedan prenos podataka preko mreže. SCP koristi SSH (Secure Shell) za uspostavljanje sigurne veze i šifrovanje podataka tokom prenosa.
Bez obzira da li trebate premestiti pojedinačni fajl ili ceo direktorijum, SCP nudi pouzdano rešenje za daljinski prenos fajlova.
Kako SCP funkcioniše?
SCP je izgrađen na vrhu SSH protokola, koji je kriptografski mrežni protokol za bezbedno udaljeno prijavljivanje i izvršavanje komandi. Koristi iste sigurnosne mehanizme kao SSH, uključujući šifrovanje i autentifikaciju, kako bi zaštitio podatke tokom prenosa.
Kada koristi SCP, korisnik pokreće naredbu za kopiranje na svom lokalnom računaru, specificirajući izvorni fajl i odredišnu lokaciju na udaljenom računaru. SCP uspostavlja SSH vezu sa udaljenim sistemom, a zatim bezbedno kopira fajlove sa izvora na odredište.
Kada koristiti SCP?
SCP je posebno koristan u sledećim situacijama:
Pravljenje rezervnih kopija sa udaljenog servera
SCP vam omogućava da pravite rezervne kopije fajlova sa udaljenog servera na vaš lokalni računar ili obrnuto, obezbeđujući redundantnost podataka i oporavak u slučaju katastrofe.
Implementacija aplikacija
Takođe pojednostavljuje proces sigurnim kopiranjem potrebnih datoteka na svaki ciljni sistem prilikom postavljanja aplikacija na više servera.
Prenos velikih fajlova
SCP nudi pouzdanu i sigurnu alternativu za prenos velikih fajlova koji mogu biti preveliki za slanje kao prilog u mejlu.
Sigurna razmena fajlova
SCP osigurava da su podaci šifrovani tokom prenosa prilikom slanja osetljivih fajlova drugim ljudima.
Udaljena saradnja
SCP se može koristiti za bezbednu razmenu fajlova sa saradnicima ili članovima tima na različitim lokacijama.
Sintaksa SCP komande
Pre nego što počnemo da koristimo SCP komandu, hajde da razumemo osnovnu sintaksu.
Sintaksa SCP komande je sledeća:
scp [opcije] [izvor] [odredište]
Objašnjenje sintakse
Opcije
Ovo su opcionalne zastavice koje menjaju ponašanje SCP komande. Možete koristiti različite opcije za prilagođavanje procesa prenosa. Evo nekih uobičajenih opcija:
-r: Rekurzivno kopira direktorijume i njihov sadržaj.
-p: Čuva dozvole, vremenske oznake i režime originalnog fajla.
-P: Određuje broj porta za SSH vezu.
-i: Određuje fajl privatnog ključa za SSH autentifikaciju.
-C: Koristi kompresiju da bi ubrzao prenos podataka.
-l: Ograničava propusni opseg koji se koristi za prenos (u Kbit/s).
-v: Opširni režim – prikazuje poruke za otklanjanje grešaka tokom prenosa.
-o: Prosleđuje opciju SSH klijentu. Može se koristiti za onemogućavanje stroge provere ključa hosta.
Izvor
Izvor navodi fajl ili direktorijum koji želite da kopirate. Može biti lokalna ili udaljena putanja – zavisno od konteksta.
Odredište
Odredište određuje gde želite da kopirate izvor. Kao i izvor, može biti lokalna ili udaljena putanja.
Primeri komandi
#1. Kopirajte fajl sa lokalnog na udaljeni server
scp /putanja/do/lokalnog/fajla.txt korisnik@udaljeniračunar:/putanja/do/odredišta/
/putanja/do/lokalnog/fajla.txt: Ovo je izvorni fajl koji želite da kopirate sa vaše lokalne mašine.
korisnik@udaljeniračunar: Zamenite korisnika imenom udaljenog korisnika, a udaljeniračunar imenom hosta ili IP adresom udaljenog servera.
/putanja/do/odredišta/: Ovo je odredišna putanja na udaljenom serveru gde će fajl biti kopiran.
Primer:
U mom slučaju, izabrao sam jedan udaljeni server za prenos fajla.
Korisničko ime za udaljeni računar – abhishekvarma
Adresa udaljenog računara – 192.168.29.70
scp /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Tokom povezivanja na udaljenu mašinu, traži lozinku. Ovde sam izabrao zip fajl za kopiranje.
Izlaz:
A izlaz će izgledati ovako ako nema greške u povezivanju sa udaljenim serverom:
sample.zip 100% 20KB 717.9KB/s 00:00
#2. Kopirajte fajl sa udaljenog na lokalni računar
scp korisnik@udaljeniračunar:/putanja/do/udaljenog/fajla.txt /putanja/do/lokalnog/odredišta/
Isto kao gore, zamenite adresu korisnika i udaljenog računara.
Primer:
scp [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop
Izlaz:
Ovo je samo uzorak izlaza u mom slučaju. Vremenska oznaka varira u zavisnosti od brzine veze.
sample.zip 100% 20KB 51.2KB/s 00:00
#3. Rekurzivno kopirajte direktorijum
scp korisnik@udaljeniračunar:/putanja/do/udaljenog/fajla.txt /putanja/do/lokalnog/odredišta/
Ovde oznaka ‘-r’ govori SCP-u da rekurzivno kopira direktorijume (uključujući poddirektorijume i njihov sadržaj).
Primer:
scp -r /home/vboxuser/Desktop [email protected]:/Users/abhishekvarma/Desktop
Ovde sam pomenuo ceo direktorijum za kopiranje fajlova.
Izlaz:
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. Kopiraj fajlove koji odgovaraju uzorku
scp /putanja/do/lokalnog/*.txt korisnik@udaljeniračunar:/putanja/do/odredišta/
*.txt – Ovo je džoker šablon koji odgovara svim fajlovima sa ekstenzijom .txt u navedenom lokalnom direktorijumu. Izvorni i odredišni putevi su isti kao i ranije.
Primer:
scp /home/vboxuser/Desktop/locfolder/*.png [email protected]:/Users/abhishekvarma/Desktop
Izlaz:
Evo, pokušao sam sa ekstenzijom .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. Sačuvajte atribute fajla
scp -p /putanja/do/lokalnog/fajla.txt korisnik@udaljeniračunar:/putanja/do/odredišta/
Ovde oznaka ‘-p’ čuva vremena modifikacije, vremena pristupa i režime izvornog fajla prilikom kopiranja.
Primer:
scp -p /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Izlaz:
sample.zip 100% 20KB 420.0KB/s 00:00
#6. Odredite drugačiji SSH port
scp -P 22 /putanja/do/lokalnog/fajla.txt korisnik@udaljeniračunar:/putanja/do/odredišta/
Oznaka ‘-P’ specificira drugačiji SSH port (22 u ovom slučaju) za SCP vezu. Možete koristiti bilo koji port koji želite.
Primer:
scp -P 22 /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Izlaz:
sample.zip 100% 20KB 1.2MB/s 00:00
#7. Kopirajte sa kompresijom
scp -C /putanja/do/lokalnog/fajla.txt korisnik@udaljeniračunar:/putanja/do/odredišta/
Ova oznaka ‘-C’ omogućava kompresiju tokom prenosa, potencijalno smanjujući veličinu prenetih podataka. Izvorna i odredišna adresa su iste kao što je prethodno objašnjeno.
Primer:
scp -C /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Izlaz:
sample.zip 100% 20KB 985.8KB/s 00:00
#8. Opširni izlaz za otklanjanje grešaka
scp -v /putanja/do/lokalnog/fajla.txt korisnik@udaljeniračunar:/putanja/do/odredišta/
Ova opcija ‘-v’ aktivira opširni izlaz, koji pruža detaljnije informacije tokom procesa prenosa.
Primer:
scp -v /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Izlaz:
Izlaz uzorka će izgledati ovako:
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. Kopirajte sa udaljenog na lokalno sa opširnim izlazom
scp -v korisnik@udaljeniračunar:/putanja/do/udaljenog/fajla.txt /putanja/do/lokalnog/odredišta/
Ista objašnjenja kao u prethodnom opširnom primeru, sa obrnutim ulogama lokalnih i udaljenih lokacija.
Primer:
scp -v [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop
Izlaz:
Izlaz će izgledati ovako:
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. Kopirajte koristeći drugačiji SSH ključ
scp -i /putanja/do/privatnog_kljuca.pem /putanja/do/lokalnog/fajla.txt korisnik@udaljeniračunar:/putanja/do/odredišta/
Ova oznaka „-i /putanja/do/privatnog_kljuca.pem“ navodi drugačiji SSH privatni ključ za autentifikaciju.
Primer:
scp -i /putanja/do/privatnog_kljuca.pem /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Izlaz:
Ako imate privatni ključ, onda ga možete koristiti ili možete koristiti podrazumevani.
sample.zip 100% 20KB 1.1MB/s 00:00
#11. Kopirajte više fajlova na udaljeni server
scp fajl1.txt fajl2.txt korisnik@udaljeniračunar:/putanja/do/odredišta/
Ova komanda kopira fajl1.txt i fajl2.txt iz lokalnog direktorijuma na navedeno odredište na udaljenom serveru.
Primer:
scp /home/vboxuser/Desktop/image.png /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Izlaz:
image.png 100% 39KB 1.4MB/s 00:00 sample.zip 100% 20KB 1.5MB/s 00:00
#12. Kopirajte udaljeni fajl sa drugim imenom
scp korisnik@udaljeniračunar:/putanja/do/udaljenog/fajla.txt /putanja/do/lokalnog/novifajl.txt
Ova komanda kopira fajl.txt sa udaljenog servera u lokalni direktorijum, preimenujući ga u novifajl.txt u procesu.
Primer:
scp [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop/novifajl.zip
Izlaz:
Stare i nove ekstenzije fajla treba da budu iste dok izvršavate ovu komandu.
sample.zip 100% 20KB 28.7KB/s 00:00
#13. Kopiranje sa određenim ograničenjem propusnog opsega
scp -l 1000 /putanja/do/lokalnog/fajla.txt korisnik@udaljeniračunar:/putanja/do/odredišta/
Ova oznaka ‘-l’ određuje ograničenje propusnog opsega u Kbps (1000 Kbps u ovom slučaju) za prenos.
Primer:
scp -l 300 /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Izlaz:
sample.zip 100% 20KB 31.3KB/s 00:00
#14. Kopiranje fajlova i očuvanje simboličkih veza
scp -rp /putanja/do/lokalnog/izvora/ korisnik@udaljeniračunar:/putanja/do/odredišta/
Oznaka ‘-p’ čuva atribute fajla, a -r zastavica rekurzivno kopira direktorijume. Ova komanda takođe čuva simboličke veze tokom kopiranja.
Primer:
scp -rp /home/vboxuser/Desktop/image.png [email protected]:/Users/abhishekvarma/Desktop
Izlaz:
image.png 100% 39KB 1.8MB/s 00:00
#15. Opširno kopiranje fajlova sa kompresijom
scp -vC /putanja/do/lokalnog/fajla.txt korisnik@udaljeniračunar:/putanja/do/odredišta/
Ova komanda kombinuje opširni izlaz (-v) i kompresiju (-C) tokom prenosa fajla.
Primer:
scp -vC /home/vboxuser/Desktop/image.png [email protected]:/Users/abhishekvarma/Desktop
Izlaz:
Izlaz će izgledati ovako:
scp: debug1: