Har du nogensinde ønsket at overføre filer på tværs af et netværk af computere og mødt sikkerhedsproblemer? Nå, du kan ikke bare smide dine filer ud på netværket og håbe på at de bliver sikre, som Rødhætte! Du har brug for sikkerhedsforanstaltninger. Du bør bruge en filoverførselsprotokol, der sikrer at dine data er beskyttet mod uautoriseret adgang, sniffing af netværk, databrud og andre trusler.
Secure Copy Protocol (SCP) er en kraftfuld filoverførselsprotokol til netværk, der overfører filer mellem forskellige maskiner på et netværk. I dette blogindlæg bliver vi mere fortrolige med denne protokol og udforsker potentialet i at bruge SCP fra fjernmaskine til lokal maskine.
Hvordan fungerer SCP?
SCP bruger SSH (Secure Shell) til at overføre dine filer. Men hvad betyder det egentlig? SSH er en netværksprotokol til sikker og sikkert fjernadgang til servere. Den er udstyret med metoder til godkendelse, kryptering og verifikation af integriteten af de transmitterede datafiler. SCP benytter sig af disse sikkerhedsfunktioner og krypteringsmetoder, som SSH tilbyder, til at overføre filer over et netværk på sikker vis. På denne måde kan du bruge SCP fra fjern til lokal server til sikker forbindelse og filoverføring og være sikker på autenticiteten og fortroligheden af dine data.
Brug af SCP til filoverføringer: Hvorfor og hvordan?
Brug af SCP fra fjern til lokal og SCP fra lokal til fjern er en effektiv og fleksibel måde at overføre filer på. SCP tilbyder store fordele ved filoverføring. For eksempel tilbyder SCP stærkere sikkerhedsforanstaltninger end andre filoverføringsmetoder som FTP. Et andet aspekt, hvor SCP adskiller sig fra andre protokoller, er hastighed. SCP er normalt meget hurtigere end andre protokoller som SFTP, og det er et fremragende værktøj til filoverføring mellem Linux-maskiner.
Du kan flytte filer med SCP:
- Fra en lokal maskine til en fjern maskine
- Fra en fjern maskine til en lokal maskine
- Fra en fjern maskine til en anden fjern maskine.
Lad os nu gå videre til faktisk at bruge Linux SCP-syntaksen til filoverføring. Det første, 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. 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 servermaskine kræver en privat nøgle og en offentlig nøgle. Denne kommando genererer et SSH-nøglepar til dig:
ssh-keygen
Når du kører denne kommando, bliver du sandsynligvis bedt om at angive et navn til nøgleparet og en adgangsfrase (dette er valgfrit). Når nøgleparet er oprettet, skal du kopiere den offentlige nøgle til servermaskinen.
Lad os nu se på den generelle form af SCP-kommandoen:
scp [options] [source username@IP]:/[directory/file name] [destination username@IP]:/[directory]
- [options] > Denne første parentes kan erstattes med forskellige muligheder for SCP-kommandoen, som vi gennemgår senere.
- [source username@IP] > Denne parentes skal erstattes med brugernavn og IP-adresse på den lokale maskine. For eksempel: [email protected]
- [directory/file name] > Denne parentes skal erstattes med placeringen af den fil, du vil sende.
- [destination username@IP] > Denne parentes skal erstattes med modtagermaskninens brugernavn og IP-adresse.
- [directory] > Erstat denne del med det ønskede sted for din fil på fjernmaskinen.
Nu ved du, hvad den generelle kommando ser ud til. Lad os se på alle de nyttige muligheder for SCP-kommandoen:
| Mulighed | Usecase |
| -C |
Ved at bruge denne mulighed komprimerer SCP dine filer under overføringen.
|
| -c <cipher> |
Du kan bruge denne mulighed til at fortælle SCP hvilken cipher, den skal bruge. For eksempel: scp -c <aes128-ctr>.
|
| -v |
Denne mulighed giver dig et trin-for-trin-overblik over processen.
|
| -l <limit in kilobytes> |
Denne mulighed giver dig mulighed for at angive en grænse for den maksimale båndbredde. For eksempel angiver følgende kommando båndbreddebrug til 100 kb pr. sekund: scp -l 100
|
| -P |
Ved at bruge denne mulighed kan du ændre SSH-porten på den fjernserver, du ønsker at forbinde til. SCP bruger port 22 som standard.
|
| -S <programnavn> |
Du kan bruge denne mulighed til at vælge et program til forbindelse.
|
| -r |
Kopier en hel fil eller mappe rekursivt.
|
Overføring af filer med SCP
Du husker, at vi har tre typer overføringer med SCP, ikke? Nu vil vi udforske hver type overføring for sig selv. Men lad os først definere opgaven. Jeg har et billede af en kat på skrivebordet på min Linux-computer, og i første trin vil jeg overføre det til en Linux-fjernserver. Derefter overfører jeg det tilbage til min lokale computer. Til sidst flyttes den heldige kat mellem to fjernmaskiner.

SCP fra lokal til fjern
Med denne kommando overfører vi vores fil fra en lokal computer til en fjernserver:
scp [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Hvis du vil bruge scp-kommandoen med adgangskode, skal du angive adgangskoden til din fjernserver. Derefter er du færdig.

SCP fra fjern til lokal
For at vende denne proces om, behøver du ikke at få adgang til terminalen på din fjernserver. Skriv denne kommando i 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 om.

SCP mellem to fjerne maskiner
Lad os nu overføre filen mellem to fjernmaskiner. Dette trin kræver adgangskode til begge fjernmaskiner, så sørg for at have dem. Brug denne kommando for at overføre en fil mellem to fjerne computere:
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 fjernverts. Men lad os gå videre 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 dens filer. Det ville være meget tidskrævende at overføre disse filer en efter en. I stedet kan du bruge scp-kommandoen til at kopiere flere filer for 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 i mange situationer:
- Kodeimplementering: når du udrulles kode eller webapplikationer, kan du få brug for at overføre en hel mappe med alle dens komponenter som filer og scripts.
- Sikkerhedskopi og synkronisering: Hvis du vil have en sikkerhedskopi af en hel mappe, eller hvis du vil synkronisere to mapper på den lokale maskine og fjernserveren, skal du kopiere alt rekursivt.
- Systemmigrering: En vigtig opgave ved systemmigrering er at kopiere og overføre alle vigtige informationer. Ved at bruge SCP-kommandoen med -r-indstillingen sikrer du, at du ikke går glip af noget under migreringen.
2. Begrænsning af båndbreddeforbrugelse
Hvis du vil kontrollere den hastighed, 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 gøre det?
I disse to situationer kan du bruge Linux scp-syntaks til at sætte en grænse for båndbredden:
- Netværkstrangt: Hvis dit netværk er meget overbelastet, kan begrænsning af båndbredde med scp hjælpe med fordeling af netværksressourcer. Begrænsning af båndbredde med SCP sikrer, at andre netværksrelaterede opgaver kører uden problemer. Dette er også vigtig ved overførsel af filer over et delt netværk, hvor din proces kan forstyrre netværksaktiviteter for andre brugere.
- Baggrundsoverførsler: Under baggrund-SCP-overførsler som automatiserede sikkerhedskopier eller synkroniseringsprocesser, er der en risiko for, at disse opgaver bruger dine netværksressourcer. I så fald kan du begrænse båndbredden på disse overførselsprocesser for bedre at styre ressourcerne.
3. Hentning af en detaljeret log
Hvis du bruger -v-indstillingen med SCP, får du en detaljeret log over yderligere oplysninger om overførselsprocessen. Du kan bruge kommandoen nedenfor for 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: brug af denne indstilling viser dig fremgangen af overførslen i aktion. Du kan se oplysninger som filstørrelse og færdighedsprocent. Den giver også fejlmeddelelser og advarsler. Ved at kombinere disse data kan du overvåge og fejlfindet 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 at ændre SSH-porten. Her er kommandoen, der giver dig mulighed for at 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 for potentielle trusler, kan du ændre SSH-porten.
Findes der alternativer til SCP?
SCP er hurtig og sikker, og ved at kende den rigtige Linux scp-syntaks og nogle 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 lokal kopiering. Det kan også reducere båndbreddeforbruget ved kun at overføre forskellene mellem kilde- og destinationsfiler. En anden stor fordel ved at bruge rsync er, at det kan fortsætte afbrudt filoverførsler, hvor de blev stoppet, og fortsætte processen.
rsync fordele
- Effektiv synkronisering af filer og mapper.
- Understøtter delta-transfer-algoritme, som reducerer dataoverførsel.
- Kan genoptage afbrudt overførsel.
rsync-ulemper
- Kræver, at rsync er installeret på både kilde- og destinationssystemet.
- Kræver mere opsætning og flere kommandoindstillinger sammenlignet med scp.
2. SFTP (SSH-filoverførselsprotokol)
SFTP giver en sikker måde at overføre filer via SSH. Det har lignende funktionalitet som FTP, men kører over en krypteret SSH-forbindelse, ligesom SCP. I nogle områder overgår SFTP dog SCP. SCP kan ikke generere mappelistinger, oprette eller slette mapper osv. SFTP kan udføre alle disse opgaver.
SFTP Fordele
- Sikker filoverførsel med kryptering.
- Fjernfilstyringsfunktioner.
- Bredt tilgængeligt på de fleste Linux og Unix-systemer.
SFTP-ulemper
- Kommandosyntaks og brug adskiller sig fra traditionel FTP.
- Kan have begrænset support på visse embedded-systemer eller enheder.
3. FTP (filoverførselsprotokol)
FTP er en udbredt standardprotokol til filoverførsel. Den fungerer efter en klient-server-model og tilbyder grundlæggende filoverføringsfunktionalitet.
FTP fordele
- Bredt understøttet på 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.
- Autentificering i klartekst.
Samlet set er scp et simpelt og pålideligt valg til sikker filoverførsel via SSH, men alternativer som rsync, sftp og FTP kan tilbyde yderligere funktioner og fleksibilitet afhængigt af dine specifikke behov.
Hvordan vælger du så mellem dem? Du bør overveje faktorer som sikkerhed, synkroniseringsbehov, brugervenlighed og kompatibilitet med dine systemer og protokoller. Hvis sikkerhed og datakonfidentialitet for eksempel er de vigtigste faktorer for din filoverførsel, 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 lokalt, fra lokalt til fjern, og endda mellem to fjerne systemer til at overføre filer. Og selvom der findes alternativer til SCP, som udfører opgaven tilfredsstillende, såsom rsync, overgår SCP dem på mange måder, især inden for sikkerhed og hastighed. I dette blogindlæg diskuterede vi SCP, dets use cases og alternativer, og vi gav også et cheat sheet til nem adgang til hyppigt brugt syntaks.
Ofte stillede spørgsmål
Findes der sikkerhedsrisici, jeg skal være opmærksom på, når jeg bruger SCP fra fjern til lokal?
SCP er et ret sikkert værktøj, og du behøver ikke bekymre dig om sikkerhedstrusler, når du bruger det. Det anbefales dog altid at tage de ekstra sikkerhedsforanstaltninger, du kan.
Hvad er nogle almindelige fejl, der opstår, når SCP bruges fra fjern til lokal?
Når du bruger SCP til at overføre filer fra en fjernserver til en lokal maskine, kan brugere støde på flere almindelige fejl. Her er to af de mest almindelige fejl ved brug af SCP fra fjern til lokalt.
- No such file or directory: denne fejl opstår, når du ikke har angivet det rigtige portnummer, filpositionistilladelserne er forkerte, eller når loginoplysningerne er forkerte.
- Host Key Verification Failed: denne fejlmeddelelse opstår, når host-nøglen er ændret på grund af serveropgraderinger. Host-nøglen viser, at du tidligere har forbundet til den server, og når host-nøgelsbevaering mislykkes, indikerer det, at serverens identitet er ændret. Denne fejl forsøger at beskytte dig mod at forbinde til en svindel-server.
Hvordan bruger jeg SCP til at overføre filer mellem fjerne systemer?
For at overføre filer mellem systemer ved hjælp af SCP, skal begge computere være tilgængelige via SSH. Du skal også have IP-adressen og adgangskoden til fjernmaskinerne. Resten handler blot om at bruge 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]
Når du har indtastet denne kommando, bliver du bedt om at angive adgangskoden til servererne. Derefter overføres din fil.