50% korting alle abonnementen, tijdelijk aanbod. Vanaf $2.48/mo
12 min over
Servers & besturingssysteem

SCP van remote naar lokaal: Linux SCP-opdrachten

Ada Lovegoed By Ada Lovegoed 12 minuten lezen
scp van remote naar lokaal

Wil je bestanden overdragen tussen computers in een netwerk, maar loop je tegen beveiligingsproblemen aan? Je kunt je bestanden niet zomaar het netwerk in sturen en hopen dat ze veilig aankomen. Je hebt beveiligingsmaatregelen nodig: een bestandsoverdrachtsprotocol dat je data beschermt tegen ongeautoriseerde toegang, netwerksniffen, datalekken en andere dreigingen.

Secure Copy Protocol (SCP) is een krachtig netwerkprotocol voor bestandsoverdracht tussen machines in een netwerk. In dit artikel gaan we dieper in op dit protocol en bekijken we hoe je SCP gebruikt om bestanden van een externe naar een lokale machine te kopiëren.

Hoe werkt SCP? 

SCP gebruikt SSH (Secure Shell) om bestanden over te zetten. Maar wat houdt dat precies in? SSH is een netwerkprotocol voor veilige externe toegang tot servers. Het biedt methoden voor authenticatie, versleuteling en verificatie van de integriteit van overgedragen bestanden. SCP bouwt voort op deze beveiligingsfuncties en versleutelingsmethoden van SSH om bestanden veilig via een netwerk over te zetten. Zo kun je SCP gebruiken voor een beveiligde verbinding en bestandsoverdracht tussen externe en lokale servers, met de zekerheid dat je gegevens authentiek en vertrouwelijk blijven.

Bestanden overdragen met SCP: waarom en hoe? 

SCP gebruiken van extern naar lokaal en van lokaal naar extern is een efficiënte en flexibele manier om bestanden over te zetten. SCP biedt een aantal belangrijke voordelen. Zo hanteert SCP sterkere beveiligingsmaatregelen dan andere overdrachtsmethoden zoals FTP. SCP wijkt ook af van andere protocollen wat betreft snelheid: het is doorgaans veel sneller dan protocollen als SFTP, en daarmee een uitstekend hulpmiddel voor bestandsoverdracht tussen Linux-machines.

Je kunt bestanden verplaatsen met SCP:

  • Van een lokale machine naar een externe machine
  • Van een externe machine naar een lokale machine
  • Van een externe machine naar een andere externe machine.

Laten we nu kijken naar het gebruik van de Linux SCP-syntax voor bestandsoverdracht. Allereerst moet je SSH op beide computers instellen. SSH is echter standaard geïnstalleerd op alle Linux-machines. Als dat bij jou het geval is, kun je deze stappen overslaan.

1. SSH instellen

Voer de volgende opdracht uit om SSH te installeren:

sudo apt install openssh-client

2. SSH-sleutels genereren

Vervolgens moet het clientapparaat een SSH-verbinding opzetten. Voor een beveiligde verbinding tussen client en server zijn een privésleutel en een publieke sleutel nodig. Met deze opdracht maak je een SSH-sleutelpaar aan:

ssh-keygen

Bij het uitvoeren van deze opdracht word je waarschijnlijk gevraagd een naam voor het sleutelpaar en een wachtwoordzin op te geven (dit is optioneel). Nadat het sleutelpaar is aangemaakt, moet je de publieke sleutel naar de servermachine kopiëren.

Laten we nu kijken naar de algemene vorm van het SCP-commando:

scp [options] [source username@IP]:/[directory/file name] [destination username@IP]:/[directory]
  • [options] > Dit eerste deel kan worden vervangen door verschillende opties van het SCP-commando, die we verderop bespreken.
  • [source username@IP] > Vervang dit gedeelte door de gebruikersnaam en het IP-adres van de lokale machine. Bijvoorbeeld: [email protected]
  • [directory/file name] > Vervang dit gedeelte door het pad naar het bestand dat je wilt versturen.
  • [destination username@IP] > Vervang dit gedeelte door de gebruikersnaam en het IP-adres van de ontvangende machine.
  • [directory] > Vervang dit gedeelte door de gewenste locatie van je bestand op de externe machine.

Nu weet je hoe het algemene commando eruitziet. Laten we de beschikbare opties van het SCP-commando bekijken:

Optie Gebruikscase
-C
Met deze optie comprimeert SCP je bestanden tijdens de overdracht.
-c <cipher>
Met deze optie geef je aan welk cijfer SCP moet gebruiken. Bijvoorbeeld: scp -c <aes128-ctr>.
-v
Deze optie toont een stap-voor-stap overzicht van het proces.
-l <limit in kilobytes>
Met deze optie stel je een limiet in voor de maximale bandbreedte. Het volgende voorbeeld beperkt het bandbreedtegebruik tot 100 kb per seconde: scp -l 100
-P
Met deze optie wijzig je de SSH-poort van de externe server waarmee je verbinding wilt maken. SCP gebruikt standaard poort 22.
-S <programmanaam>
Met deze optie kies je een programma voor de verbinding.
-r
Kopieer een heel bestand of directory recursief.

Bestanden overdragen met SCP 

We hebben drie soorten overdrachten met SCP. Nu gaan we elk type afzonderlijk bekijken. Maar laten we eerst de situatie schetsen. Ik heb een foto van een kat op het bureaublad van mijn Linux-computer. In de eerste stap wil ik die overzetten naar een externe Linux-server. Daarna zet ik het bestand terug naar mijn lokale computer. En als laatste verplaatst de gelukkige kat zich tussen twee externe machines.

een afbeelding overdragen met scp

SCP van lokaal naar extern 

Met dit commando verstuur je een bestand van een lokale computer naar een externe server:

scp [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Om het scp-commando met een wachtwoord te gebruiken, voer je het wachtwoord van je externe server in. Daarna ben je klaar.

SCP gebruiken om bestanden van lokaal naar extern te kopiëren

SCP van extern naar lokaal

Om dit proces om te keren, hoef je geen toegang te hebben tot de terminal van je externe server. Typ dit commando in de terminal van je lokale computer:

scp [username]@[IP address of the remote machine]:[path/to/the/file] [path/to/the/location]

Zoals je ziet, hebben we de twee delen van dit commando simpelweg omgewisseld.

SCP gebruiken om bestanden van extern naar lokaal te kopiëren

SCP tussen twee externe machines

Laten we nu de kat verplaatsen tussen twee externe machines. Voor deze stap heb je het wachtwoord van beide externe machines nodig, dus zorg dat je die bij de hand hebt. Gebruik dit commando om een bestand over te zetten tussen twee externe computers:

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]

scp gebruiken om bestanden tussen twee externe systemen over te zetten

Andere veelgebruikte SCP-opdrachten

De meest gebruikte SCP-commando's zijn scp van extern naar lokaal, scp van lokaal naar extern, en SCP tussen twee externe hosts. Maar laten we daar niet bij stilstaan en nog een aantal handige Linux scp-voorbeelden bekijken.

1. Een volledige map recursief kopiëren

Stel dat je een volledige directory met alle bijbehorende bestanden wilt overzetten. Die bestanden één voor één kopiëren kost veel tijd. In plaats daarvan gebruik je het scp-commando om een directory recursief te kopiëren:

scp -r [Path/to/directory] [username of the remote server]@[Ip address]:/[path/to/the/location]

Dit kan in veel situaties van pas komen:

  • Code-implementatie: Wanneer je code of webapplicaties uitrolt, moet je soms een volledige map overdragen, inclusief alle bijbehorende bestanden en scripts.
  • Back-up en synchronisatie: Als je een back-up wilt maken van een volledige map, of twee mappen wilt synchroniseren tussen je lokale machine en een externe server, moet je alles recursief kopiëren.
  • Systeemmigratie: Een essentiële stap bij systeemmigratie is het kopiëren en overdragen van alle belangrijke gegevens. Met de SCP-opdracht en de optie -r zorg je ervoor dat je niets over het hoofd ziet tijdens de verplaatsing.

2. Bandbreedtegebruik beperken

Als je de snelheid van de gegevensoverdracht wilt beperken, gebruik je de volgende opdracht:

scp -l <limit> [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Waarom zou je dat willen?
In deze twee situaties kun je de Linux scp-syntax gebruiken om een bandbreedtelimiet in te stellen:

  • Netwerkcongestie: Als je netwerk zwaar belast is, kan het beperken van de bandbreedte met SCP helpen om de netwerkcapaciteit eerlijk te verdelen. Zo kunnen andere netwerktaken zonder problemen blijven draaien. Dit is ook belangrijk bij bestandsoverdrachten over een gedeeld netwerk, waarbij jouw proces de netwerkactiviteiten van andere gebruikers kan verstoren.
  • Achtergrondoverdrachten: Bij SCP-overdrachten op de achtergrond, zoals geautomatiseerde back-ups of synchronisatieprocessen, bestaat de kans dat deze taken al je netwerkcapaciteit opslorpen. In dat geval kun je de bandbreedte voor deze processen beperken om de beschikbare resources beter te beheren.

3. Een gedetailleerd logboek opvragen

De optie -v gebruiken met SCP geeft je een gedetailleerd overzicht van aanvullende informatie over het overdrachtsproces. Gebruik de onderstaande opdracht voor uitgebreide feedback:

scp -v [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Dit is waarom je deze opdracht moet kennen:

  • Probleemoplossing: Met deze optie zie je de voortgang van de overdracht in realtime. Je krijgt informatie zoals de bestandsgrootte en het voltooiingspercentage, maar ook foutmeldingen en waarschuwingen. Samen stellen deze gegevens je in staat om het overdrachtsproces te bewaken en problemen op te lossen waar nodig.

4. Een SSH-poort opgeven

De Linux scp-syntax met de optie -P gebruiken stelt je in staat om de SSH-poort te wijzigen. Gebruik hiervoor de volgende opdracht:

scp -P [port number] [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Dit kan nuttig zijn voor:

  • Firewallconfiguratie: Als de standaard SSH-poort geblokkeerd is, of als je de SSH-service wilt afschermen van potentiële bedreigingen, kun je de SSH-poort aanpassen.

Zijn er alternatieven voor SCP?

SCP is snel en veilig. Met de juiste Linux scp-syntax en wat kennis van probleemoplossing kan het het enige hulpmiddel zijn dat je nodig hebt. Het is echter geen kwaad om de alternatieven ook te bekijken.

1. rsync

rsync is een veelzijdig hulpmiddel voor bestandsoverdracht met geavanceerde synchronisatiemogelijkheden, incrementele overdrachten en ondersteuning voor zowel lokaal als extern kopiëren. Het kan het bandbreedtegebruik verminderen door alleen de verschillen tussen bron- en doelbestanden over te dragen. Een ander groot voordeel van rsync is dat het onderbroken bestandsoverdrachten kan hervatten vanaf het punt waarop ze gestopt zijn.

rsync Voordelen

  • Efficiënte synchronisatie van bestanden en mappen.
  • Ondersteunt het delta-overdrachtsalgoritme, waardoor minder data wordt overgedragen.
  • Kan onderbroken overdrachten hervatten.

rsync Nadelen

  • Vereist dat rsync op zowel het bron- als het doelsysteem is geïnstalleerd.
  • Vereist meer configuratie en opdrachtopties dan scp.

2. SFTP (SSH-bestandsoverdrachtprotocol)

SFTP biedt een veilige manier om bestanden over SSH over te dragen. De functionaliteit lijkt op die van FTP, maar werkt via een versleutelde SSH-verbinding, net als SCP. Op bepaalde punten heeft SFTP echter de overhand op SCP. SCP kan geen mapoverzichten genereren, en geen mappen aanmaken of verwijderen. SFTP kan dat allemaal wel.

SFTP Voordelen

  • Veilige bestandsoverdracht met versleuteling.
  • Mogelijkheden voor extern bestandsbeheer.
  • Breed beschikbaar op de meeste Linux- en Unix-systemen.

SFTP-nadelen

  • De commandosyntaxis en het gebruik wijken af van traditionele FTP.
  • Mogelijk beperkte ondersteuning op bepaalde embedded systemen of apparaten.

3. FTP (Bestandsoverdrachtprotocol)

FTP is een veelgebruikt standaardprotocol voor bestandsoverdracht. Het werkt volgens een client-servermodel en biedt basisfunctionaliteit voor bestandsoverdracht.

FTP-voordelen

  • Brede ondersteuning op uiteenlopende platformen.
  • Bekende command-line- en grafische clients zijn beschikbaar.

FTP-nadelen

  • Geen versleuteling — minder veilig dan scp en sftp.
  • Mogelijk is extra firewallconfiguratie nodig om verbindingen tot stand te brengen.
  • Authenticatie via plain text.

Kortom, hoewel scp een eenvoudige en betrouwbare keuze is voor veilige bestandsoverdracht via SSH, kunnen alternatieven zoals rsync, sftp en FTP extra mogelijkheden en flexibiliteit bieden, afhankelijk van je specifieke wensen.
Hoe kies je nu het juiste protocol? Houd rekening met factoren zoals beveiliging, synchronisatiebehoeften, gebruiksgemak en compatibiliteit met je systemen en protocollen. Als beveiliging en vertrouwelijkheid van data voor jou het zwaarst wegen, is FTP geen goede keuze.

Conclusie 

SCP is een snelle en veilige tool voor bestandsoverdracht tussen computers. Je kunt scp gebruiken van remote naar local, van local naar remote, en zelfs tussen twee remote systemen. En hoewel er alternatieven zijn die het werk ook doen, zoals rsync, steekt SCP er in veel opzichten bovenuit — zeker op het gebied van beveiliging en snelheid. In dit blogartikel bespreken we SCP, de toepassingen en alternatieven, en bieden we een cheat sheet met veelgebruikte commandosyntaxis.

Veelgestelde vragen 

Zijn er beveiligingsrisico's waar ik rekening mee moet houden bij het gebruik van SCP van extern naar lokaal?  

SCP is een goed beveiligd protocol, dus je hoeft je tijdens het gebruik geen zorgen te maken over beveiligingsrisico's. Het blijft echter altijd verstandig om extra beveiligingsmaatregelen te nemen waar dat mogelijk is.

Wat zijn veelvoorkomende fouten bij het gebruik van SCP van extern naar lokaal? 

Wie SCP gebruikt om bestanden van een externe server naar een lokale machine te kopiëren, kan een aantal veelvoorkomende foutmeldingen tegenkomen. Dit zijn de twee meest voorkomende fouten bij scp remote to local:

  1. No such file or directory: deze fout treedt op als je het verkeerde poortnummer hebt opgegeven, als de bestandsmachtigingen onjuist zijn, of als de inloggegevens niet kloppen.
  2. Host Key Verification Failed: deze foutmelding verschijnt wanneer de hostsleutel is gewijzigd door een serverupgrade. De hostsleutel bevestigt dat je eerder verbinding hebt gemaakt met die server. Als de verificatie mislukt, betekent dit dat de identiteit van de server is veranderd. Deze fout beschermt je tegen verbinding met een frauduleuze server.

Hoe gebruik ik SCP om bestanden tussen externe systemen over te zetten?

Om bestanden succesvol via SCP tussen systemen te kunnen overdragen, moeten beide computers bereikbaar zijn via SSH. Je hebt ook het IP-adres en het wachtwoord van de externe machines nodig. Daarna is het een kwestie van het juiste SCP-commando gebruiken:

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]

Na het uitvoeren van dit commando wordt je gevraagd het wachtwoord van de servers in te voeren. Daarna wordt je bestand overgedragen.

Delen

Meer van de blog

Verder lezen.

Omslagafbeelding van de beste self-hosted apps die je met Cosmos Cloud kunt draaien, met app-panelen rondom een Cosmos-dashboard.
Servers & besturingssysteem

De beste self-hosted apps voor gebruik met Cosmos Cloud: bestanden, media, wachtwoorden, automatisering en meer!

Maybe je hebt Cosmos Cloud opgezet en wilt weten welke apps er goed bij passen, of je twijfelt nog over Cosmos en wilt eerst zien hoe goed het in jouw workflow past

Nick ZilverNick Zilver 16 minuten lezen
Portainer vs Cosmos Cloud voor het beheren van Docker-apps, met hybride configuratiediagram en neon ops vs. toegangsblokken.
Servers & besturingssysteem

Portainer vs Cosmos Cloud: Wat Past het Beste bij Docker App-beheer

Als je Docker al kent en gewoon op zoek bent naar de overzichtelijkste manier om een groeiende app-stack te draaien, hier is het korte antwoord op Portainer vs Cosmos Cloud. Portainer is de sterkere keuze voor direc

Nick ZilverNick Zilver 14 minuten lezen
Cosmos Cloud vs CasaOS vs Umbrel - afbeelding met drie self-hosted paden in één abstract cloudnetwerk.
Servers & besturingssysteem

Cosmos Cloud vs CasaOS vs Umbrel: Welk Self-Hosted Platform Past bij Jouw Setup?

Het korte antwoord: CasaOS is nog steeds het makkelijkste startpunt, Umbrel voelt het meest verzorgd en overzichtelijk aan, en Cosmos Cloud wordt interessanter zodra je meer controle wilt over doma

Nick ZilverNick Zilver 11 min lezen

Klaar om in te zetten? Vanaf $2.48/mnd.

Onafhankelijke cloud, sinds 2008. AMD EPYC, NVMe, 40 Gbps. 14 dagen geld-terug-garantie.