16 Vanlige SCP-kommandoer med eksempler for å kopiere filer og mapper

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.

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.

  17 beste gratis programvare for rettsmedisinsk videoforbedring

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.

  Få tilgang til ofte brukte apper fra varslingsskuffen

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.

  Hvordan sette opp og bruke iMessage på en Mac

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
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