SCP is nauw verwant aan het SSH-protocol en is inderdaad vanuit hetzelfde idee ontstaan.
SCP zorgt ervoor dat gegevens tijdens de overdracht vertrouwelijk en ongehinderd blijven, als uitbreiding van het SSH-protocol.
Laten we eerst begrijpen hoe dit SCP werkt, en dan zullen we de scp-opdrachten zien.
Wat is SCP?
SCP staat voor Safe Copy Protocol.
Het is een veilige en efficiënte methode voor het kopiëren van bestanden en mappen tussen lokale en externe hosts of tussen twee externe hosts.
Het wordt veel gebruikt voor het veilig overbrengen van gegevens by way of een netwerk. SCP vertrouwt op SSH (Safe Shell) om een veilige verbinding tot stand te brengen en de gegevens tijdens de overdracht te versleutelen.
Of u nu een enkel bestand of een hele map moet verplaatsen, SCP biedt een betrouwbare oplossing voor bestandsoverdracht op afstand.
Hoe SCP werkt?
SCP is gebouwd bovenop het SSH-protocol – een cryptografisch netwerkprotocol voor veilig inloggen op afstand en uitvoering van opdrachten. Het gebruikt dezelfde beveiligingsmechanismen als SSH, inclusief encryptie en authenticatie, om gegevens tijdens de verzending te beschermen.
Bij gebruik van SCP initieert een gebruiker een kopieeropdracht op zijn lokale machine die het bronbestand en de bestemmingslocatie op een externe machine specificeert. SCP brengt een SSH-verbinding tot stand met het externe systeem en kopieert vervolgens de bestanden veilig van de bron naar de bestemming.
Wanneer SCP gebruiken?
SCP is met title handig in de volgende state of affairs’s.
Again-up van externe servers
Met SCP kunt u een back-up maken van bestanden van een externe server naar uw lokale machine of omgekeerd, wat gegevensredundantie en noodherstel garandeert.
Implementatie van applicaties
Het vereenvoudigt ook het proces door de benodigde bestanden veilig naar elk doelsysteem te kopiëren bij het implementeren van applicaties op meerdere servers.
Grote bestanden overbrengen
SCP biedt een betrouwbare en veilige alternatieve methode voor het verzenden van gegevens voor grote bestanden die mogelijk te groot zijn om als e-mailbijlage te verzenden.
Veilig bestanden delen
SCP zorgt ervoor dat de gegevens tijdens het transport gecodeerd blijven terwijl vertrouwelijke bestanden naar andere mensen worden verzonden.
Samenwerking op afstand
SCP kan worden gebruikt om bestanden veilig te delen met medewerkers of teamleden op verschillende locaties.
SCP-opdrachtsyntaxis
Voordat we aan de slag gaan met het gebruik van de SCP-opdracht, moeten we eerst de basissyntaxis begrijpen.
De syntaxis van de SCP-opdracht ziet er als volgt uit:
scp [options] [source] [destination]
Uitleg van syntaxis
Opties
Dit zijn optionele vlaggen die het gedrag van de SCP-opdracht wijzigen. U kunt verschillende opties gebruiken om het overdrachtsproces aan te passen. Hier zijn enkele veelvoorkomende opties:
-R: Kopieert recursief mappen en hun inhoud.
-P: Behoud de machtigingen, tijdstempels en modi van het originele bestand.
-P: Specificeert het poortnummer voor de SSH-verbinding.
-i: Specificeert het privésleutelbestand voor SSH-authenticatie.
-C: Gebruik compressie om de gegevensoverdracht te versnellen.
-l: Beperk de bandbreedte die wordt gebruikt voor de overdracht (in Kbit/s).
-v: Uitgebreide modus – geeft foutopsporingsberichten weer tijdens de overdracht.
-O: Geeft een optie door aan de SSH-client. Het kan worden gebruikt om strikte controle van de hostsleutel uit te schakelen.
Bron
De bron specificeert het bestand of de map die u wilt kopiëren. Het kan een lokaal pad of een pad op afstand zijn, afhankelijk van de context.
Bestemming
De bestemming geeft aan waar u de bron wilt kopiëren. Web als de bron kan het ook een lokaal pad of een pad op afstand zijn.
Commandovoorbeelden
#1. Kopieer een bestand van de lokale naar de externe server
scp /path/to/native/file.txt consumer@remotehost:/path/to/vacation spot/
/pad/naar/lokaal/bestand.txt: Dit is het bronbestand dat u van uw lokale pc wilt kopiëren.
gebruiker@remotehost: Vervang de gebruiker door de naam van de externe gebruiker en de externe host door de hostnaam of het IP-adres van de externe server.
/pad/naar/bestemming/: Dit is het bestemmingspad op de externe server waar het bestand naartoe wordt gekopieerd.
Voorbeeld: In mijn geval heb ik één externe server gekozen voor het overbrengen van het bestand.
Gebruikersnaam voor externe host Abhishekvarma
Extern hostadres – 192.168.29.70
scp /house/vboxuser/Desktop/pattern.zip [email protected]:/Customers/abhishekvarma/Desktop
Wanneer u verbinding maakt met een externe machine, wordt om het wachtwoord gevraagd. Hier heb ik een zipbestand geselecteerd om te kopiëren.
Uitvoer
En de uitvoer zal er zo uitzien als er geen fout is opgetreden bij het verbinden met een externe server.
pattern.zip 100% 20KB 717.9KB/s 00:00
#2. Kopieer een bestand van de externe naar de lokale machine
scp consumer@remotehost:/path/to/distant/file.txt /path/to/native/vacation spot/
Hetzelfde als hierboven, vervang het gebruiker- en externe hostadres.
Voorbeeld
scp [email protected]:/Customers/abhishekvarma/Desktop/pattern.zip /house/vboxuser/Desktop
Uitvoer
Dit is slechts de voorbeelduitvoer in mijn geval. Tijdstempel varieert afhankelijk van de verbindingssnelheid.
pattern.zip 100% 20KB 51.2KB/s 00:00
#3. Kopieer een listing recursief
scp consumer@remotehost:/path/to/distant/file.txt /path/to/native/vacation spot/
Hier vertelt de vlag ‘-r’ SCP om mappen recursief te kopiëren (inclusief submappen en hun inhoud).
Voorbeeld
scp -r /house/vboxuser/Desktop [email protected]:/Customers/abhishekvarma/Desktop
Hier noemde ik de hele map om de bestanden te kopiëren.
Uitvoer
pattern.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
.assist.swp 100% 12KB 780.4KB/s 00:00
#4. Kopieer bestanden die overeenkomen met een patroon
scp /path/to/native/*.txt consumer@remotehost:/path/to/vacation spot/
*.tekst – Dit is een jokertekenpatroon dat overeenkomt met alle bestanden met de extensie .txt in de opgegeven lokale map. Bron- en bestemmingspaden zijn hetzelfde als voorheen.
Voorbeeld
scp /house/vboxuser/Desktop/locfolder/*.png [email protected]:/Customers/abhishekvarma/Desktop
Uitvoer
Hier heb ik het geprobeerd met een .png-extensie.
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. Bestandskenmerken behouden
scp -p /path/to/native/file.txt consumer@remotehost:/path/to/vacation spot/
Hier behoudt de vlag ‘-p’ de wijzigingstijden, toegangstijden en modi van het bronbestand tijdens het kopiëren.
Voorbeeld
scp -p /house/vboxuser/Desktop/pattern.zip [email protected]:/Customers/abhishekvarma/Desktop
Uitvoer
pattern.zip 100% 20KB 420.0KB/s 00:00
#6. Geef een andere SSH-poort op
scp -P 22 /path/to/native/file.txt consumer@remotehost:/path/to/vacation spot/
De vlag ‘-P’ specificeert een andere SSH-poort (in dit geval 22) voor de SCP-verbinding. Je kunt elke gewenste poort gebruiken.
Voorbeeld
scp -P 22 /house/vboxuser/Desktop/pattern.zip [email protected]:/Customers/abhishekvarma/Desktop
Uitvoer
pattern.zip 100% 20KB 1.2MB/s 00:00
#7. Kopiëren met compressie
scp -C /path/to/native/file.txt consumer@remotehost:/path/to/vacation spot/
Deze ‘-C’-vlag maakt compressie mogelijk tijdens de overdracht, waardoor de omvang van de overgedragen gegevens mogelijk wordt verkleind. Het bron- en bestemmingsadres zijn hetzelfde zoals eerder uitgelegd.
Voorbeeld
scp -C /house/vboxuser/Desktop/pattern.zip [email protected]:/Customers/abhishekvarma/Desktop
Uitvoer
pattern.zip 100% 20KB 985.8KB/s 00:00
#8. Uitgebreide uitvoer voor foutopsporing
scp -v /path/to/native/file.txt consumer@remotehost:/path/to/vacation spot/
Deze ‘-v’-optie activeert de uitgebreide uitvoer, die meer gedetailleerde informatie biedt tijdens het overdrachtsproces.
Voorbeeld
scp -v /house/vboxuser/Desktop/pattern.zip [email protected]:/Customers/abhishekvarma/Desktop
Uitvoer
De voorbeelduitvoer ziet er als volgt uit.
Executing: program /usr/bin/ssh host 192.168.29.70, consumer abhishekvarma, command scp -v -t /Customers/abhishekvarma/Desktop OpenSSH_8.9p1 Ubuntu-3ubuntu0.3, OpenSSL 3.0.2 15 Mar 2022
debug1: Studying configuration information /and so on/ssh/ssh_config
debug1: /and so on/ssh/ssh_config line 19: embrace /and so on/ssh/ssh_config.d/*.conf matched no recordsdata
debug1: /and so on/ssh/ssh_config line 21: Making use of choices for *
debug1: Connecting to 192.168.29.70 [192.168.29.70] port 22. debug1: Connection established.
debug1: identification file /root/.ssh/id_rsa sort -1
debug1: identification file /root/.ssh/id_rsa-cert sort -1 debug1: identification file /root/.ssh/id_ecdsa sort -1 debug1: identification file /root/.ssh/id_ecdsa-cert sort -1 debug1: identification file /root/.ssh/id_ecdsa_sk sort -1 debug1: identification file /root/.ssh/id_ecdsa_sk-cert sort -1
#9. Kopieer van extern naar lokaal met uitgebreide uitvoer
scp -v consumer@remotehost:/path/to/distant/file.txt /path/to/native/vacation spot/
Dezelfde uitleg als het vorige uitgebreide voorbeeld, waarbij de rollen van lokale en afgelegen locaties omgedraaid zijn.
Voorbeeld
scp -v [email protected]:/Customers/abhishekvarma/Desktop/pattern.zip /house/vboxuser/Desktop
Uitvoer
De uitvoer ziet er als volgt uit.
Executing: program /usr/bin/ssh host 192.168.29.70, consumer abhishekvarma, command scp -v -f /Customers/abhishekvarma/Desktop/pattern.zip OpenSSH_8.9p1 Ubuntu-3ubuntu0.3, OpenSSL 3.0.2 15 Mar 2022
debug1: /and so on/ssh/ssh_config line 19: embrace /and so on/ssh/ssh_config.d/*.conf matched no recordsdata
debug1: Studying configuration information /and so on/ssh/ssh_config
debug1: /and so on/ssh/ssh_config line 21: Making use of choices for *
debug1: Connecting to 192.168.29.70 [192.168.29.70] port 22. debug1: Connection established.
debug1: identification file /root/.ssh/id_rsa sort -1
debug1: identification file /root/.ssh/id_rsa-cert sort -1 debug1: identification file /root/.ssh/id_ecdsa sort -1 debug1: identification file /root/.ssh/id_ecdsa-cert sort -1 debug1: identification file /root/.ssh/id_ecdsa_sk sort -1 debug1: identification file /root/.ssh/id_ecdsa_sk-cert sort -1
#10. Kopiëren met een andere SSH-sleutel
scp -i /path/to/private_key.pem /path/to/native/file.txt consumer@remotehost:/path/to/vacation spot/
Deze vlag “-i /path/to/private_key.pem” specificeert een andere SSH-privésleutel voor authenticatie.
Voorbeeld
scp -i /path/to/private_key.pem /house/vboxuser/Desktop/pattern.zip [email protected]:/Customers/abhishekvarma/Desktop
Uitvoer
Als u een privésleutel heeft, kunt u deze gebruiken, maar u kunt ook de standaardsleutel gebruiken.
pattern.zip 100% 20KB 1.1MB/s 00:00
#11. Kopieer meerdere bestanden naar de externe server
scp file1.txt file2.txt consumer@remotehost:/path/to/vacation spot/
Met deze opdracht kopieert u file1.txt en file2.txt van de lokale map naar de opgegeven bestemming op de externe server.
Voorbeeld
scp /house/vboxuser/Desktop/picture.png /house/vboxuser/Desktop/pattern.zip [email protected]:/Customers/abhishekvarma/Desktop
Ouitvoer
picture.png 100% 39KB 1.4MB/s 00:00
pattern.zip 100% 20KB 1.5MB/s 00:00
#12. Kopieer een extern bestand met een andere naam
scp consumer@remotehost:/path/to/distant/file.txt /path/to/native/newfilename.txt
Met deze opdracht kopieert u bestand.txt van de externe server naar de lokale map, waarbij u de naam ervan wijzigt in nieuwebestandsnaam.txt.
Voorbeeld
scp [email protected]:/Customers/abhishekvarma/Desktop/pattern.zip /house/vboxuser/Desktop/newfile.zip
Uitvoer
De oude en nieuwe bestandsextensies moeten hetzelfde zijn tijdens het uitvoeren van deze opdracht.
pattern.zip 100% 20KB 28.7KB/s 00:00
#13. Kopiëren met specifieke bandbreedtelimiet
scp -l 1000 /path/to/native/file.txt consumer@remotehost:/path/to/vacation spot/
Deze ‘-l’-vlag specificeert een bandbreedtelimiet in Kbps (in dit geval 1000 Kbps) voor de overdracht.
Voorbeeld
scp -l 300 /house/vboxuser/Desktop/pattern.zip [email protected]:/Customers/abhishekvarma/Desktop
Uitvoer
pattern.zip 100% 20KB 31.3KB/s 00:00
#14. Bestanden kopiëren en symbolische koppelingen behouden
scp -rp /path/to/native/supply/ consumer@remotehost:/path/to/vacation spot/
De vlag ‘-p’ behoudt bestandskenmerken en de vlag -r kopieert recursief mappen. Met deze opdracht blijven ook symbolische koppelingen behouden tijdens het kopiëren.
Voorbeeld
scp -rp /house/vboxuser/Desktop/picture.png [email protected]:/Customers/abhishekvarma/Desktop
Uitvoer
picture.png 100% 39KB 1.8MB/s 00:00
#15. Bestanden uitgebreid kopiëren met compressie
scp -vC /path/to/native/file.txt consumer@remotehost:/path/to/vacation spot/
Deze opdracht combineert zowel uitgebreide uitvoer (-v) als compressie (-C) tijdens de bestandsoverdracht.
Voorbeeld
scp -vC /house/vboxuser/Desktop/picture.png [email protected]:/Customers/abhishekvarma/Desktop
Uitvoer
De uitvoer ziet er als volgt uit.
scp: debug1: fd 3 clearing O_NONBLOCK
Sending file modes: C0664 40050 picture.png
Sink: C0664 40050 picture.png
picture.png
d 6 clearing O_NONBLOCK
scp: debug1: fd • clearing O_NONBLOCK
picture.png
debug1: client_input_channel_req: channel ✪ sort exit-status reply debug1: channel 0: free: client-session, channels 1
Transferred: despatched 40220, acquired 2576 bytes, in 0.1 seconds
Bytes per second: despatched 352570.0, acquired 22581.3
root@ubuntu: ~
debug1: Exit standing 0
debug1: compress outgoing: uncooked information 40287, compressed 38198, issue 0.95 debug1: compress incoming: uncooked information 792, compressed 757, issue 0.96
#16. Kopiëren tussen twee externe servers
Als u bestanden van de ene externe server naar de andere wilt overbrengen, kunt u deze opdracht gebruiken.
scp user1@remotehost1:/path/to/distant/file.txt user2@remotehost2:/path/to/vacation spot/
Deze opdracht draagt file.txt rechtstreeks over van remotehost1 naar remotehost2.
Voorbeeld
scp user1@remotehost1:/path/to/distant/file.txt [email protected]:/Customers/abhishekvarma/Desktop
Uitvoer
file.txt 100% 512KB 512.0KB/s 00:00
Als er fouten of problemen optreden tijdens de overdracht, kan de uitvoer foutmeldingen weergeven die informatie geven over wat er mis is gegaan.
ssh: connect with host supply.instance.com port 22: Connection refused
misplaced connection
In dit geval suggereert het foutbericht dat de SSH-verbinding met de bronserver is geweigerd. Dit kan verschillende redenen hebben, zoals een onjuiste hostnaam, IP-adres, poort of problemen met de SSH-configuratie.
Veelgestelde vragen over SCP
Hier vindt u enkele veelgestelde vragen met betrekking tot het SCP-protocol, samen met de antwoorden.
FTP staat voor File Switch Protocol.
SFTP staat voor File Switch Protocol. Deze worden beide gebruikt voor bestandsoverdracht.
SCP werkt by way of SSH en biedt zowel codering als authenticatie in één enkel protocol, waardoor het veiliger en efficiënter wordt.
SCP is het meest geschikt voor state of affairs’s waarin veilige en betrouwbare bestandsoverdrachten vereist zijn, zoals externe back-ups, software-implementatie, het distribueren van configuratiebestanden en samenwerking tussen teamleden.
Ja, SCP ondersteunt zowel IPv4- als IPv6-adressen, waardoor u bestanden kunt overbrengen by way of netwerken die elk adresseringsschema gebruiken.
Conclusie✍️
Ik hoop dat je dit artikel nuttig vond bij het leren over SCP en hoe het werkt.
Mogelijk bent u ook geïnteresseerd in het leren kennen van de Linux-opdrachten voor systeembeheerder