Har du nogensinde ønsket at overføre nogle filer på tværs af et netværk af computere og stået over for sikkerhedsudfordringer? Nå, du kan ikke bare smide dine filer ud i netværket og ønske, at de forbliver sikre og sikre, som Rødhætten! Du har brug for sikkerhedsforanstaltninger. Du bør bruge en filoverførselsprotokol, der sikrer, at dine data er beskyttet mod uautoriseret adgang, netværkssniffing, databrud og andre typer trusler.
Secure Copy Protocol (SCP) er en kraftfuld filoverførselsnetværksprotokol, der overfører filer mellem forskellige maskiner på et netværk. I dette blogindlæg bliver vi mere fortrolige med denne protokol og udforsker potentialerne ved at bruge SCP fra eksterne til lokale maskiner.
Hvordan virker SCP?
SCP bruger SSH (Secure Shell) til at overføre dine filer. Men hvad betyder det overhovedet? SSH er en netværksprotokol til sikker og sikker fjernadgang til servere. Den er udstyret med metoder til autentificering, kryptering og verifikation af integriteten af de transmitterede datafiler. SCP er afhængig af disse sikkerhedsfunktioner og krypteringsmetoder leveret af SSH for at overføre filer sikkert over et netværk. På denne måde kan du bruge SCP fra eksterne til lokale servere til sikker forbindelse og filoverførsel og være sikker på ægtheden og fortroligheden af dine data.
Brug af SCP til filoverførsler; Hvorfor og hvordan?
Brug af SCP fra fjern til lokal og SCP lokal til fjern er en effektiv og fleksibel måde at overføre filer på. SCP tilbyder nogle store fordele ved filoverførsel. For eksempel tilbyder SCP mere robuste sikkerhedsforanstaltninger end andre filoverførselsmetoder som FTP. Et andet aspekt, hvor SCP afviger fra andre protokoller, er hastighed. SCP er normalt meget hurtigere end andre protokoller som SFTP, og det er et fantastisk værktøj til filoverførsel mellem Linux-maskiner.
Du kan flytte filer med SCP:
- Fra en lokal maskine til en fjernmaskine
- Fra en fjernmaskine til en lokal maskine
- Fra en fjernmaskine til en anden fjernmaskine.
Lad os nu gå videre til faktisk at bruge Linux SCP-syntaks til filoverførsel. Den første ting du skal gøre er at konfigurere SSH på begge dine computere. Det er dog vigtigt at bemærke, at SSH typisk er installeret på alle Linux-maskiner. Så hvis det er tilfældet for dig, kan du springe disse trin over.
1. Opsætning af SSH
Kør følgende kommando for at installere SSH:
sudo apt install openssh-client
2. Generering af SSH-nøgler
Klientenheden skal derefter etablere en SSH-forbindelse. En sikker forbindelse mellem klient- og servermaskiner kræver, at der etableres en privat nøgle og en offentlig nøgle. Denne kommando opretter et SSH-nøglepar til dig:
ssh-keygen
mens du kører denne kommando, vil du sandsynligvis blive bedt om at angive et navn til nøgleparret og en adgangssætning (dette er valgfrit). Når nøgleparret er oprettet, skal du kopiere den offentlige nøgle til servermaskinen.
Lad os nu tage et kig på den generelle form for SCP-kommandoen:
scp [options] [source username@IP]:/[directory/file name] [destination username@IP]:/[directory]
- [indstillinger] > Denne første parentes kan erstattes med forskellige muligheder for SCP-kommandoen, som vi kommer til senere.
- [kildebrugernavn@IP] > Denne parentes skal erstattes med brugernavnet og IP-adressen på den lokale maskine. For eksempel: [email protected]
- [mappe/filnavn] > Denne parentes skal erstattes med placeringen af den fil, du vil sende.
- [destination brugernavn@IP] > Denne parentes skal erstattes med den modtagende maskines brugernavn og IP-adresse.
- [mappe] > Erstat denne sektion med den ønskede placering af din fil på den eksterne maskine.
Så nu ved du, hvordan den generelle kommando ser ud. Lad os se på alle de nyttige muligheder for SCP-kommandoen:
| Valgmulighed | Usecase |
| -C |
Ved at bruge denne mulighed komprimerer SCP dine filer, når du overfører dem.
|
| -c <cipher> |
Du kan bruge denne mulighed til at fortælle SCP at bruge en specifik chiffer. For eksempel scp -c <aes128-ctr>.
|
| -v |
Denne mulighed giver dig et trin-for-trin flow af processen.
|
| -l <grænse i kilobytes> |
Denne mulighed giver dig mulighed for at sætte en grænse for den maksimale båndbredde. For eksempel indstiller følgende eksempel båndbreddeforbruget til 100 kb pr. sekund: scp -l 100
|
| -P |
Ved at bruge denne mulighed kan du ændre ssh-porten på den fjernserver, du vil oprette forbindelse til. SCP bruger port 22 som standard.
|
| -S <programnavn> |
Du kan bruge denne mulighed til at vælge et program til tilslutning.
|
| -r |
Kopier en hel fil eller mappe rekursivt.
|
Overførsel af filer med SCP
Så du kan huske, at vi har tre typer overførsler med SCP, ikke? Nu vil vi udforske hver type overførsel afhængigt. Men lad os definere missionen, inden vi går i gang. Jeg har dette kattebillede på skrivebordet på min Linux-computer, og i det første trin vil jeg overføre det til en Linux-fjernserver. Så overfører jeg det tilbage til min lokale computer. Og til sidst vil den heldige kat bevæge sig mellem to fjerntliggende maskiner.

SCP fra lokal til ekstern
Ved at bruge denne kommando overføres vores fil fra en lokal computer til en ekstern server:
scp [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
For at bruge scp-kommando med adgangskode skal du indtaste adgangskoden til din fjernserver. Og så er du færdig.

SCP fra Remote til Local
For at vende denne proces behøver du ikke at få adgang til terminalen på din fjernserver. Skriv denne kommando på din lokale computers terminal:
scp [username]@[IP address of the remote machine]:[path/to/the/file] [path/to/the/location]
Som du kan se, har vi netop vendt de to dele af denne kommando.

SCP mellem to eksterne maskiner
Lad os nu overføre katten mellem to fjerntliggende maskiner. Dette trin kræver adgangskoden til begge fjernmaskinerne, så sørg for at have dem. Brug denne kommando til at overføre en fil mellem to fjerncomputere:
scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]

Andre almindelige SCP-kommandoer
De mest almindelige SCP-kommandoer er scp fra fjern til lokal, scp fra lokal til fjern, og SCP mellem to fjernværter. Men lad os ikke stoppe der og udforske nogle andre nyttige Linux scp-eksempler.
1. Kopiering af en hel mappe rekursivt
Forestil dig, at du vil overføre en hel mappe med alle de filer, den indeholder. Det ville være virkelig tidskrævende at overføre disse filer én efter én. I stedet kan du bruge kommandoen scp multiple files til at kopiere en mappe rekursivt:
scp -r [Path/to/directory] [username of the remote server]@[Ip address]:/[path/to/the/location]
Dette kan være nyttigt for mange scenarier:
- Kodeimplementering: når du implementerer kode eller webapplikationer, skal du muligvis overføre en hel mappe med alle dens komponenter som filer og scripts.
- Sikkerhedskopiering og synkronisering: HVIS du vil have en backup af en hel mappe, eller hvis du vil synkronisere to mapper på den lokale maskine og fjernserveren, skal du kopiere alt rekursivt.
- Systemmigrering: En afgørende opgave i systemmigrering er at kopiere og overføre alle vigtige oplysninger. Brug af SCP-kommando med -r-indstillingen vil sikre, at du ikke går glip af noget i din flytteproces.
2. Begrænsning af båndbreddeforbrug
Hvis du vil kontrollere hastigheden, hvormed dine data overføres, kan du bruge følgende kommando:
scp -l <limit> [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Hvorfor ville du dog gøre det?
I disse to scenarier kan du bruge Linux scp-syntaks til at sætte en grænse for båndbredden:
- Netværksoverbelastning: Hvis dit netværk er meget overbelastet, kan begrænsning af båndbredde med scp hjælpe med distributionen af netværksressourcer. Begrænsning af båndbredde med SCP sikrer, at andre netværksrelaterede opgaver kører uden problemer. Dette er også vigtigt, når du overfører filer over et delt netværk, og din proces kan hindre andre brugeres netværksaktiviteter.
- Baggrundsoverførsler: Under SCP-overførsler i baggrunden, såsom automatiserede sikkerhedskopier eller synkroniseringsprocesser, er der en chance for, at disse opgaver vil sluge dine netværksressourcer. I dette tilfælde kan du begrænse båndbredden på disse overførselsprocesser for at styre ressourcerne bedre.
3. Få en detaljeret log
Brug af -v Option med SCP vil give dig en detaljeret log med yderligere oplysninger om overførselsprocessen. Du kan bruge kommandoen nedenfor til at få detaljeret feedback og information:
scp -v [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Her er grunden til, at du skal huske og bruge denne kommando:
- Fejlfinding: ved at bruge denne indstilling viser du status for overførslen i aktion. Du kan se oplysninger som filstørrelse og fuldførelsesprocenten. Det giver dig også fejlmeddelelser og advarsler. Ved at kombinere disse data kan du overvåge og fejlfinde overførselsprocessen, når det er nødvendigt.
4. Angivelse af en SSH-port
Brug af Linux scp-syntaks med -P-indstillingen giver dig mulighed for det ændre SSH-porten. Her er kommandoen, der lader dig gøre det:
scp -P [port number] [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Dette kan være nyttigt til:
- Firewall-konfiguration: Hvis standard SSH-porten er begrænset, eller hvis du vil skjule SSH-tjenesten fra potentielle trusler, kan du ændre SSH-porten.
Er der nogen alternativer til SCP?
SCP er hurtigt og sikkert, og ved at kende den rigtige Linux scp-syntaks og noget fejlfindingsviden kan det være det eneste værktøj, du har brug for. Der er dog ingen skade i at gennemgå dens alternativer.
1. rsync
rsync er et alsidigt filoverførselsværktøj med avancerede synkroniseringsfunktioner, trinvise overførsler og fjern- og lokalkopiering. Det kan også reducere brugen af båndbredde ved kun at overføre forskellene mellem kilde- og destinationsfiler. En anden stor fordel ved at bruge rsync er, at den kan opfange afbrudte filoverførsler, hvorfra de slap, og fortsætte processen.
rsync Pros
- Effektiv synkronisering af filer og mapper.
- Understøtter delta-overførselsalgoritme, hvilket reducerer dataoverførsel.
- Kan genoptage afbrudte overførsler.
rsync Ulemper
- Kræver, at rsync er installeret på både kilde- og destinationssystemerne.
- Kræver flere opsætnings- og kommandomuligheder sammenlignet med scp.
2. SFTP (SSH File Transfer Protocol)
SFTP giver en sikker måde at overføre filer over SSH. Det tilbyder lignende funktionalitet som FTP, men fungerer over en krypteret SSH-forbindelse, ligesom SCP. Men på nogle områder opvejer SFTP's fordele SCP's fordele. SCP kan ikke generere kataloglister, oprette eller slette kataloger osv. SFTP kan dog udføre alle disse opgaver.
SFTP-professionelle
- Sikker filoverførsel med kryptering.
- Muligheder for fjernstyring af filer.
- Bred tilgængelighed på de fleste Linux- og Unix-systemer.
SFTP ulemper
- Kommandosyntaks og -brug adskiller sig fra traditionel FTP.
- Kan have begrænset support på visse indlejrede systemer eller enheder.
3. FTP (File Transfer Protocol)
FTP er en udbredt standardprotokol til filoverførsel. Den fungerer i en klient-server-model og tilbyder grundlæggende filoverførselsfunktionalitet.
FTP-professionelle
- Bred support på tværs af forskellige platforme.
- Velkendte kommandolinje- og grafiske klienter er tilgængelige.
FTP ulemper
- Mangler kryptering/mindre sikker sammenlignet med scp og sftp.
- Kan kræve yderligere firewall-konfiguration for at etablere forbindelser.
- Almindelig tekstgodkendelse.
Overordnet set, mens scp er et enkelt og pålideligt valg til sikker filoverførsel over SSH, kan alternativer som rsync, sftp og FTP tilbyde yderligere funktioner og fleksibilitet afhængigt af specifikke krav.
Så hvordan beslutter du dig for, hvilken du skal vælge? Du bør overveje faktorer som sikkerhed, synkroniseringsbehov, brugervenlighed og kompatibilitet med dine systemer og protokoller. For eksempel, hvis sikkerhed og datafortrolighed er de vigtigste faktorer i din filoverførsel, så er FTP ikke et godt valg.
Konklusion
SCP er et hurtigt og sikkert værktøj til filoverførsel mellem computere. Du kan bruge scp fra fjern til lokal, fra lokal til fjern, og endda mellem to fjernsystemer til at overføre filer. Og selvom der er alternativer til SCP, der gør et passende stykke arbejde, som rsync, overskrider det dem på mange måder, især med hensyn til sikkerhed og hastighed. I dette blogindlæg talte vi om SCP, dets brugssager og alternativer og leverede også et snydeark for nem adgang til den ofte brugte syntaks.
FAQ
Er der nogen sikkerhedsproblemer, jeg skal være opmærksom på, når jeg bruger SCP fra ekstern til lokal?
SCP er et ret sikkert og sikkert værktøj, og du behøver ikke bekymre dig om sikkerhedstrusler, mens du bruger det. Det anbefales dog altid at tage de ekstra sikkerhedsforanstaltninger, du kan.
Hvad er nogle almindelige fejl, der opstår, når du bruger SCP-fjernbetjening til lokal?
Når du bruger SCP til at overføre filer fra en ekstern server til en lokal maskine, kan brugere støde på flere almindelige fejl. Her er to af de mest almindelige fejl ved brug af SCP-fjernbetjening til lokal:
- Ingen sådan fil eller mappe: Denne fejl opstår, når du ikke har angivet det rigtige portnummer, filtilladelsesindstillingerne er forkerte, eller når login-oplysningerne er forkerte.
- Værtsnøglebekræftelse mislykkedes: Denne fejlmeddelelse opstår, når værtsnøglen er ændret på grund af serveropgraderinger. Værtsnøglen viser, at du har oprettet forbindelse til den server før, og når værtsnøglebekræftelsen mislykkes, indikerer det, at serverens identitet er ændret. Denne fejl forsøger at beskytte dig mod at oprette forbindelse til en svindelserver.
Hvordan bruger jeg SCP til at overføre filer mellem fjernsystemer?
For at kunne overføre filer mellem systemer ved hjælp af SCP, skal begge computere være tilgængelige via SSH. du skal også bruge IP-adressen og adgangskoden til fjernmaskinerne. Resten bruger bare den rigtige SCP-kommando:
scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]
Efter at have skrevet denne kommando, bliver du bedt om at give adgangskoden til serverne. Derefter vil din fil blive overført.