Hur man använder scp Command för att säkert överföra filer i Linux

By rik

Säker filöverföring mellan Linux-servrar med scp

Om du behöver flytta filer mellan servrar i ett Linux-system finns det flera metoder att välja mellan. Om säkerheten är prioritet, är scp (secure copy) ett utmärkt alternativ. Det tillåter filöverföring med kryptering, vilket eliminerar oron för dataintrång. I den här artikeln förklarar vi hur du använder scp-kommandot för att säkert flytta filer i ditt Linux-system.

Vad är scp-kommandot?

Scp, som står för Secure Copy Protocol, används för att överföra filer och kataloger mellan två system över en SSH-anslutning (Secure Shell). SSH garanterar filernas säkerhet genom att kryptera dem under överföringen. Scp kan ses som en säker variant av det traditionella cp-kommandot. Mer information om cp-kommandot finns i vår artikel om Linux-terminalkommandon.

Scp-kommandots syntax och alternativ

Innan vi går vidare till filöverföring, låt oss granska syntaxen och alternativen för scp-kommandot:

scp <alternativ> <användarnamn@källa_ip:sökväg/till/källa/fil> <användarnamn@mål_ip:mål/sökväg>

Förklaring av syntaxen:

  • <användarnamn@källa_ip:sökväg/till/källa/fil> anger källsystemet, det vill säga platsen varifrån filerna ska flyttas.
  • <användarnamn@mål_ip:mål/sökväg> anger målsystemet, det vill säga platsen dit filerna ska flyttas.

Om någon av parametrarna utelämnas, letar scp-kommandot först efter filen lokalt och kopierar den därefter lokalt. Här följer en lista med alternativ som kan användas med kommandot:

Alternativ Beskrivning
-P Anger porten för anslutning till värdsystemet. Om den inte anges används standardporten 22.
-p Bevarar modifierings- och åtkomsttider samt lägen från originalfilen under kopiering.
-r Kopierar hela kataloger rekursivt till målsystemet.
-J Används för att ansluta till käll- och målsystem via en proxyserver.
-3 Kopierar filer till både målsystemet och lokala systemet.
-4 Tvingar scp-kommandot att endast använda IPv4-adresser.
-6 Tvingar scp-kommandot att endast använda IPv6-adresser.

Steg för filkopiering med scp

Innan scp kan användas, måste följande vara uppfyllt på både käll- och målsystemet:

  • SSH måste vara installerat.
  • Du behöver root-åtkomst eller användare med sudo-privilegier.

Kopiera filer från lokal till fjärrvärd

Använd följande syntax för att flytta en fil från ditt lokala system till en fjärrvärd:

scp <alternativ> <sökväg_till_lokal_fil> <fjärranvändare>@<fjärrmål_ip>:<mål/sökväg>

Låt oss ta ett konkret exempel:

scp test.txt [email protected]:/home/remote2/Documents/

Här betyder:

  • test.txt filen som ska överföras (ligger i aktuell mapp).
  • test användarnamnet på målsystemet.
  • 139.144.11.105 IP-adressen till målsystemet.
  • /home/remote2/Documents/ målplatsen på fjärrsystemet.

Kopiera filer från fjärrvärd till lokal

För att kopiera en fil från en fjärrvärd till din lokala dator, använd denna syntax:

scp <alternativ> <fjärranvändare>@<fjärrvärd_ip>:<sökväg_till_fil_på_fjärr> <sökväg_för_lokal_fil>

Exempelvis:

scp [email protected]:/home/test/test1.py ~/test1.py

I detta exempel:

  • test är användarnamnet på fjärrvärden.
  • 10.10.11.113 är IP-adressen till fjärrvärden.
  • /home/test/test1.py är filens sökväg på fjärrvärden.
  • ~/test1.py är namnet och platsen för den lokalt sparade filen.

Överföra filer mellan två fjärrvärdar

Scp kan också användas för filöverföring mellan två fjärrsystem. För att undvika felmeddelanden, rekommenderas att generera ett SSH-nyckelpar på källsystemet och lagra den publika nyckeln på destinationssystemet.

För att göra detta, följ dessa steg:

1. Generera ett nyckelpar på källservern:

ssh-keygen -t <krypteringsalgoritm>

2. Använd rsa eller en annan algoritm för kryptering.

3. Välj en plats för nyckeln, eller använd standardplatsen.

4. Ange en lösenfras (valfritt).

5. Kopiera den publika nyckeln till destinationsservern:

ssh-copy-id <målanvändarnamn>@<mål_ip>

Obs: Lösenordsfri inloggning fungerar bara för den användare som nyckeln genererades för.

6. Använd följande syntax för att flytta filer mellan fjärrsystem:

scp <alternativ> <fjärranvändare_1>@<fjärrvärd_1_ip>:<sökväg_till_fil_att_överföra> <fjärranvändare_2>@<fjärrvärd_2_ip>:<mål/sökväg>

Exempelvis:

scp [email protected]:/home/test1/test.txt [email protected]:/home/remote2/Documents/test1.txt

Här betyder:

  • remote1 användarnamnet på källsystemet.
  • 10.10.11.113 IP-adressen för källsystemet.
  • /home/test1/test.txt sökvägen till filen som ska överföras.
  • remote2 användarnamnet på målsystemet.
  • 10.11.27.111 IP-adressen för målsystemet.
  • /home/remote2/Documents/test1.txt sökvägen och filnamnet för den mottagna filen.

Överför flera filer med scp

För att överföra flera filer samtidigt, kan du använda följande syntax:

scp <sökväg_till_fil_1> <sökväg_till_fil_2> <mottagaranvändare>@<målsystem_ip>:<mål/sökväg>

Exempel:

scp -P 22 test1.txt test2.py test3.sh test4.c [email protected]:/home/remote_1/Documents

I exemplet betyder:

  • -p 22 porten 22 används för anslutning.
  • test1.txt test2.py test3.sh test4.c filerna som ska överföras.
  • remote_1 användarnamnet på målsystemet.
  • 10.10.11.113 IP-adressen till målsystemet.
  • /home/remote_1/Documents platsen för att spara de mottagna filerna.

Du kan också använda jokertecken för att skicka filer med samma tillägg, exempelvis:

scp *<tillägg> <mottagaranvändare>@<målsystem_ip>:<mål/sökväg>

För att skicka alla .py-filer till en fjärrserver kan du använda detta kommando:

scp *.py [email protected]:/home/remote_1/

Här betyder:

  • *.py alla filer som slutar på .py.
  • remote1 användarnamnet på mottagarsystemet.
  • 10.10.11.113 IP-adressen till mottagarsystemet.
  • /home/remote_1/ platsen för de mottagna filerna.

Vanliga frågor

Är scp-filöverföring säker?

Ja, scp använder SSH-kryptering och autentisering, vilket ger säker filöverföring.

Är scp säkrare än SFTP?

Både scp och SFTP är lika säkra. Scp har fördelen med snabbare överföringshastigheter, speciellt i nätverk med hög latens.

Sammanfattning

Scp är ett praktiskt verktyg för säker filöverföring i nätverk. Genom att förstå scp-alternativen och syntaxen kan du enkelt överföra filer säkert och effektivt, även i nätverk med hög latens. För att förbättra dina filhanteringskunskaper i Linux, kan du läsa mer om filnamnändring och borttagning. Om du stöter på problem med scp, lämna gärna en kommentar.