SCP er nært knyttet til SSH-protokollen og ble faktisk født fra den samme ideen.
SCP sørger for at data forblir konfidensielle og umanipulerte under transport som en utvidelse av SSH-protokollen.
Først, la oss forstå hvordan denne SCP fungerer, og så ser vi scp-kommandoene.
Innholdsfortegnelse
Hva er SCP?
SCP står for Secure Copy Protocol.
Det er en sikker og effektiv metode for å kopiere filer og kataloger mellom lokale og eksterne verter eller mellom to eksterne verter.
Det er mye brukt for å overføre data sikkert over et nettverk. SCP er avhengig av SSH (Secure Shell) for å etablere en sikker tilkobling og kryptere dataene under overføring.
Enten du trenger å flytte en enkelt fil eller en hel katalog, gir SCP en pålitelig løsning for ekstern filoverføring.
Hvordan fungerer SCP?
SCP er bygget på toppen av SSH-protokollen – som er en kryptografisk nettverksprotokoll for sikker ekstern pålogging og kommandoutførelse. Den bruker de samme sikkerhetsmekanismene som SSH, inkludert kryptering og autentisering, for å beskytte data under overføring.
Når du bruker SCP, starter en bruker en kopieringskommando på sin lokale maskin som spesifiserer kildefilen og destinasjonsplasseringen på en ekstern maskin. SCP oppretter en SSH-forbindelse til det eksterne systemet og kopierer deretter filene på en sikker måte fra kilden til destinasjonen.
Når skal jeg bruke SCP?
SCP er spesielt nyttig i følgende scenarier.
Sikkerhetskopiering av ekstern server
SCP lar deg sikkerhetskopiere filer fra en ekstern server til din lokale maskin eller omvendt, noe som sikrer dataredundans og katastrofegjenoppretting.
Utrulling av applikasjoner
Det forenkler også prosessen ved å sikkert kopiere nødvendige filer til hvert målsystem når du distribuerer applikasjoner på tvers av flere servere,
Overføring av store filer
SCP tilbyr en pålitelig og sikker alternativ metode for å overføre data for store filer som kan være for store til å sende som e-postvedlegg.
Sikker fildeling
SCP sørger for at dataene holdes kryptert under overføringen mens konfidensielle filer sendes til andre personer.
Eksternt samarbeid
SCP kan brukes til å dele filer sikkert med samarbeidspartnere eller teammedlemmer på forskjellige steder.
SCP-kommandosyntaks
Før vi begynner med hvordan du bruker SCP-kommandoen, la oss begynne med å forstå den grunnleggende syntaksen.
SCP-kommandosyntaksen ser slik ut:
scp [options] [source] [destination]
Forklaring av syntaks
Alternativer
Dette er valgfrie flagg som endrer oppførselen til SCP-kommandoen. Du kan bruke ulike alternativer for å tilpasse overføringsprosessen. Her er noen vanlige alternativer:
-r: Kopierer kataloger og deres innhold rekursivt.
-p: Bevar tillatelsene, tidsstemplene og modusene til den opprinnelige filen.
-P: Angir portnummeret for SSH-tilkoblingen.
-i: Spesifiserer den private nøkkelfilen for SSH-autentisering.
-C: Bruk komprimering for å øke hastigheten på dataoverføringen.
-l: Begrens båndbredden som brukes for overføringen (i Kbit/s).
-v: Utførlig modus – viser feilsøkingsmeldinger under overføring.
-o: Sender et alternativ til SSH-klienten. Den kan brukes til å deaktivere streng vertsnøkkelkontroll.
Kilde
Kilden spesifiserer filen eller katalogen du vil kopiere. Det kan være en lokal sti eller en ekstern sti – avhengig av konteksten.
Mål
Destinasjonen angir hvor du vil kopiere kilden. I likhet med kilden kan det også være en lokal sti eller en ekstern sti.
Eksempler på kommandoer
#1. Kopier en fil fra lokal til ekstern server
scp /path/to/local/file.txt user@remotehost:/path/to/destination/
/path/to/local/file.txt: Dette er kildefilen du vil kopiere fra din lokale maskin.
bruker@fjernvert: Erstatt brukeren med den eksterne brukerens navn og den eksterne verten med vertsnavnet eller IP-adressen til den eksterne serveren.
/path/to/destination/: Dette er destinasjonsbanen på den eksterne serveren hvor filen skal kopieres.
Eksempel
I mitt tilfelle har jeg valgt en ekstern server for overføring av filen.
Remote Host brukernavn – abhishekvarma
Ekstern vertsadresse – 192.168.29.70
scp /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Mens den kobler til en ekstern maskin, ber den om passordet. Her har jeg valgt en zip-fil som skal kopieres.
Produksjon
Og utgangen vil se slik ut hvis det ikke er noen feil ved tilkobling til en ekstern server.
sample.zip 100% 20KB 717.9KB/s 00:00
#2. Kopier en fil fra fjernkontrollen til den lokale maskinen
scp user@remotehost:/path/to/remote/file.txt /path/to/local/destination/
Samme som ovenfor, bytt ut bruker- og ekstern vertsadresse.
Eksempel
scp [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop
Produksjon
Dette er bare eksempelutgangen i mitt tilfelle. Tidsstempelet varierer avhengig av tilkoblingshastighet.
sample.zip 100% 20KB 51.2KB/s 00:00
#3. Kopier en katalog rekursivt
scp user@remotehost:/path/to/remote/file.txt /path/to/local/destination/
Her ber «-r»-flagget SCP om å kopiere kataloger rekursivt (inkludert underkataloger og deres innhold).
Eksempel
scp -r /home/vboxuser/Desktop [email protected]:/Users/abhishekvarma/Desktop
Her nevnte jeg hele katalogen for å kopiere filene.
Produksjon
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. Kopier filer som samsvarer med et mønster
scp /path/to/local/*.txt user@remotehost:/path/to/destination/
*.txt – Dette er et jokertegnmønster som samsvarer med alle filer med en .txt-utvidelse i den angitte lokale katalogen. Kilde- og målstier er de samme som før.
Eksempel
scp /home/vboxuser/Desktop/locfolder/*.png [email protected]:/Users/abhishekvarma/Desktop
Produksjon
Her har jeg prøvd med en .png-utvidelse.
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. Bevar filattributter
scp -p /path/to/local/file.txt user@remotehost:/path/to/destination/
Her beholder «-p»-flagget endringstidene, tilgangstidene og modusene til kildefilen ved kopiering.
Eksempel
scp -p /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Produksjon
sample.zip 100% 20KB 420.0KB/s 00:00
#6. Spesifiser en annen SSH-port
scp -P 22 /path/to/local/file.txt user@remotehost:/path/to/destination/
«-P»-flagget spesifiserer en annen SSH-port (22 i dette tilfellet) for SCP-tilkoblingen. Du kan bruke hvilken som helst port du vil.
Eksempel
scp -P 22 /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Produksjon
sample.zip 100% 20KB 1.2MB/s 00:00
#7. Kopier med komprimering
scp -C /path/to/local/file.txt user@remotehost:/path/to/destination/
Dette «-C»-flagget muliggjør komprimering under overføringen, noe som potensielt reduserer størrelsen på de overførte dataene. Kilde- og destinasjonsadressen er de samme som forklart tidligere.
Eksempel
scp -C /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Produksjon
sample.zip 100% 20KB 985.8KB/s 00:00
#8. Utførlig utgang for feilsøking
scp -v /path/to/local/file.txt user@remotehost:/path/to/destination/
Dette «-v»-alternativet aktiverer den detaljerte utgangen, som gir mer detaljert informasjon under overføringsprosessen.
Eksempel
scp -v /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Produksjon
Eksempelutgangen vil se slik ut.
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. Kopier fra ekstern til lokal med detaljert utgang
scp -v user@remotehost:/path/to/remote/file.txt /path/to/local/destination/
Samme forklaringer som det forrige utførlige eksemplet, med rollene til lokale og avsidesliggende steder omvendt.
Eksempel
scp -v [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop
Produksjon
Utgangen vil se slik ut.
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. Kopier med en annen SSH-nøkkel
scp -i /path/to/private_key.pem /path/to/local/file.txt user@remotehost:/path/to/destination/
Dette «-i /path/to/private_key.pem»-flagget spesifiserer en annen privat SSH-nøkkel for autentisering.
Eksempel
scp -i /path/to/private_key.pem /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Produksjon
Hvis du har en privat nøkkel, kan du bruke den, ellers kan du bruke standardnøkkelen.
sample.zip 100% 20KB 1.1MB/s 00:00
#11. Kopier flere filer til den eksterne serveren
scp file1.txt file2.txt user@remotehost:/path/to/destination/
Denne kommandoen kopierer fil1.txt og fil2.txt fra den lokale katalogen til den angitte destinasjonen på den eksterne serveren.
Eksempel
scp /home/vboxuser/Desktop/image.png /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Produksjon
image.png 100% 39KB 1.4MB/s 00:00 sample.zip 100% 20KB 1.5MB/s 00:00
#12. Kopier en ekstern fil med et annet navn
scp user@remotehost:/path/to/remote/file.txt /path/to/local/newfilename.txt
Denne kommandoen kopierer fil.txt fra den eksterne serveren til den lokale katalogen, og gir den nytt navn til nytt filnavn.txt i prosessen.
Eksempel
scp [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop/newfile.zip
Produksjon
De gamle og nye filtypene skal være de samme mens du utfører denne kommandoen.
sample.zip 100% 20KB 28.7KB/s 00:00
#1. 3. Kopiering med spesifikk båndbreddegrense
scp -l 1000 /path/to/local/file.txt user@remotehost:/path/to/destination/
Dette «-l»-flagget spesifiserer en båndbreddegrense i Kbps (1000 Kbps i dette tilfellet) for overføringen.
Eksempel
scp -l 300 /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop
Produksjon
sample.zip 100% 20KB 31.3KB/s 00:00
#14. Kopiere filer og bevare symbolske lenker
scp -rp /path/to/local/source/ user@remotehost:/path/to/destination/
«-p»-flagget bevarer filattributter og -r-flagget kopierer kataloger rekursivt. Denne kommandoen bevarer også symbolske lenker under kopieringen.
Eksempel
scp -rp /home/vboxuser/Desktop/image.png [email protected]:/Users/abhishekvarma/Desktop
Produksjon
image.png 100% 39KB 1.8MB/s 00:00
#15. Kopiere filer utførlig med komprimering
scp -vC /path/to/local/file.txt user@remotehost:/path/to/destination/
Denne kommandoen kombinerer både detaljert utdata (-v) og komprimering (-C) under filoverføringen.
Eksempel
scp -vC /home/vboxuser/Desktop/image.png [email protected]:/Users/abhishekvarma/Desktop
Produksjon
Utgangen vil se slik ut.
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. Kopiering mellom to eksterne servere
Hvis du vil overføre filer fra en ekstern server til en annen, kan du bruke denne kommandoen.
scp user1@remotehost1:/path/to/remote/file.txt user2@remotehost2:/path/to/destination/
Denne kommandoen overfører file.txt direkte fra remotehost1 til remotehost2.
Eksempel
scp user1@remotehost1:/path/to/remote/file.txt [email protected]:/Users/abhishekvarma/Desktop
Produksjon
file.txt 100% 512KB 512.0KB/s 00:00
Hvis det er noen feil eller problemer under overføringen – kan utgangen vise feilmeldinger som gir informasjon om hva som gikk galt.
ssh: connect to host source.example.com port 22: Connection refused lost connection
I dette tilfellet antyder feilmeldingen at SSH-tilkoblingen til kildeserveren ble nektet. Det kan skyldes ulike årsaker, for eksempel feil vertsnavn, IP-adresse, port eller problemer med SSH-konfigurasjonen.
Vanlige spørsmål om SCP
Her er noen vanlige spørsmål knyttet til SCP-protokollen, sammen med svarene deres.
Hvordan skiller SCP seg fra FTP eller SFTP?
FTP står for File Transfer Protocol.
SFTP står for File Transfer Protocol. Disse brukes begge til filoverføringer.
SCP opererer over SSH og tilbyr både kryptering og autentisering i en enkelt protokoll som gjør det sikrere og mer effektivt.
Når bør jeg bruke SCP?
SCP er best egnet for scenarier der sikre og pålitelige filoverføringer kreves, for eksempel ekstern sikkerhetskopiering, programvaredistribusjon, distribusjon av konfigurasjonsfiler og samarbeid mellom teammedlemmer.
Er SCP kompatibel med IPv6-adresser?
Ja, SCP støtter både IPv4- og IPv6-adresser som lar deg overføre filer over nettverk som bruker en hvilken som helst adresseordning.
Konklusjon✍️
Jeg håper du fant denne artikkelen nyttig for å lære om SCP og hvordan det fungerer.
Du kan også være interessert i å lære om Linux-kommandoer for systemadministrator