Wat is scp en hoe kopieer je er bestanden mee?
Auteur: Redactie Domeny.ForSale Gepubliceerd
Kort samengevat: In de informatica staat SCP (Secure Copy Protocol) voor een manier om bestanden veilig tussen computers te kopiëren. scp is het commando waarmee je bestanden overzet via SSH, een versleutelde verbinding met een extern systeem. Je kunt er een bestand mee naar een server sturen of een back-up naar je eigen computer downloaden. Moderne versies van scp uit het OpenSSH-pakket gebruiken standaard het SFTP-protocol in plaats van het oudere SCP-protocol. De afkorting komt ook voor in de naam van het fictieve universum SCP Foundation. Dat is een andere betekenis, die niets met gegevensoverdracht te maken heeft.
Waarvoor gebruik je scp en hoe werkt het?
Het commando scp kopieert gegevens van de opgegeven bron naar de bestemming. Typische toepassingen zijn een websitearchief naar een server sturen, logbestanden downloaden voor analyse of een configuratiebestand kopiëren. Je voert het uit in de terminal en geeft daarbij de paden en toegangsgegevens voor de externe computer op.
SSH versleutelt de verbinding en maakt authenticatie mogelijk: het controleren van de identiteit van de partijen die verbinding maken. Een gebruiker logt meestal in met een wachtwoord of een SSH-sleutel. Zo’n sleutel bestaat uit twee samenhangende delen: de publieke sleutel plaats je op de server, terwijl je de privésleutel op je eigen computer bewaart en geheim houdt.
Een versleutelde overdracht betekent echter niet dat het bestand ook versleuteld is nadat het op de schijf is opgeslagen. scp is evenmin een volwaardig back-upsysteem: het biedt op zichzelf geen versiegeschiedenis, archiefrotatie of tests om te controleren of gegevens kunnen worden hersteld.
Wat moet je voorbereiden voordat je gaat kopiëren?
Op de computer waarmee je de overdracht start, heb je een scp-client nodig. Die is aanwezig in veel installaties van Linux en macOS. In Windows kun je de OpenSSH-client gebruiken. Met ssh -V controleer je of OpenSSH aanwezig is. Of scp zelf beschikbaar is, controleer je door scp zonder argumenten uit te voeren; het programma hoort dan informatie over de syntaxis te tonen.
Op de server moet SSH actief zijn. Voor de standaardmodus van moderne OpenSSH-versies moet ook SFTP worden ondersteund. Je hebt het serveradres, een gebruikersnaam, een inlogmethode en toegangsrechten voor de betreffende map nodig. Een account dat uitsluitend FTP ondersteunt, is niet voldoende.
Voordat je voor het eerst bestanden overzet, kun je het inloggen testen:
Het adres 192.0.2.10 is een voorbeeld; vervang het door het adres van je eigen server. Bij de eerste verbinding kan de client vragen om de vingerafdruk van de hostsleutel te bevestigen. Dat is een identificatiecode van de serversleutel. Vergelijk deze met de informatie van de beheerder of uit een vertrouwd beheerpaneel van de aanbieder, in plaats van hem automatisch te accepteren.
Hoe gebruik je scp: drie praktische voorbeelden
De basisstructuur van het commando is:
scp [opties] bron bestemming
Een externe locatie schrijf je meestal als gebruiker@server:pad. De dubbele punt scheidt het serveradres van het pad naar het bestand of de map.
Een bestand naar de server sturen: stel dat je in de huidige map het archief website.tar.gz hebt en dat je dit in de thuismap van gebruiker Anna wilt plaatsen:
scp strona.tar.gz [email protected]:/home/anna/
Een bestand van de server downloaden: draai de volgorde van bron en bestemming om. De punt aan het einde staat voor de huidige map op de computer waarop je het commando uitvoert:
scp [email protected]:/home/anna/backup.zip .
Een volledige map naar de server sturen: voeg de optie -r toe. Deze schakelt recursief kopiëren in, zodat ook de inhoud van de map en de onderliggende mappen wordt gekopieerd:
scp -r ./fotos [email protected]:/home/anna/
Als SSH op een andere poort dan de standaardpoort 22 draait, geef je die op met de hoofdletter -P, bijvoorbeeld scp -P 2222 bestand.txt [email protected]:/home/anna/. De kleine letter -p heeft een andere betekenis: hiermee blijven de toegangs- en wijzigingstijden en de rechtenbits van het bestand behouden. Zet lokale paden met spaties tussen aanhalingstekens, bijvoorbeeld "jaarverslag.pdf".
Wanneer kies je scp, SFTP of rsync?
De namen SCP en SFTP worden soms verward, omdat beide oplossingen SSH gebruiken. Oorspronkelijk waren het verschillende protocollen voor bestandsoverdracht. Sinds OpenSSH 9.0 gebruikt het commando scp standaard SFTP voor de overdracht, maar de vertrouwde syntaxis blijft behouden.
Kies in de praktijk het hulpmiddel dat bij je taak past:
scp— om eenmalig een bestand te uploaden of te downloaden als je het pad kent.- Een SFTP-client — om externe mappen te bekijken, bestanden te selecteren en ze interactief te beheren, ook in een grafisch programma.
rsyncvia SSH — om herhaaldelijk mappen te kopiëren en alleen wijzigingen over te zetten in plaats van alle gegevens opnieuw te kopiëren. Daarvoor moetrsyncmeestal aan beide kanten beschikbaar zijn.
De optie -O in OpenSSH dwingt het gebruik van het oude SCP-protocol af. Gebruik deze om een specifiek compatibiliteitsprobleem op te lossen, niet als standaardinstelling. De ondersteunde opties en het gedrag van jouw versie kun je controleren in de lokale documentatie via man scp of in de officiële OpenSSH-documentatie.
Veelvoorkomende fouten en een veilige eerste overdracht
De melding Permission denied kan wijzen op een inlogfout of ontbrekende toegangsrechten voor een bestand of map. Als inloggen via ssh wel werkt, controleer dan of de externe gebruiker op de bestemming mag schrijven. No such file or directory wijst meestal op een onjuist pad. Connection refused kan betekenen dat je de verkeerde poort gebruikt of dat de SSH-service niet actief is.
scp kan een bestaand bestand zonder bevestiging overschrijven. Controleer vóór de overdracht de volgorde van de argumenten en de inhoud van de doelmap. Houd er ook rekening mee dat een relatief pad op de server meestal wordt gerekend vanaf de thuismap van de gebruiker, niet vanaf de map die op je eigen computer is geopend.
Voer de eerste test uit met een klein, onbelangrijk bestand en zet het over naar een aparte map. Controleer daarna of het bestand aanwezig is en of de inhoud klopt. Gebruik pas dan dezelfde aanpak voor de daadwerkelijke gegevens.
Zie ook: Wat is AGI?
