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

Anta att du vill överföra några filer mellan servrar på ett Linux-system. Det finns många sätt du kan utföra uppgiften på, men om din prioritet är att överföra filer säkert, har du några alternativ kvar. Den enklaste lösningen är att använda kommandot scp eller säker kopiering för att överföra dina filer utan att behöva oroa dig för säkerheten. I den här artikeln kommer vi att förklara hur du använder överföringsfiler säkert med kommandot scp på ditt Linux-system.

Överför filer med scp Command i Linux (2023)

Vad är scp Command i Linux

När det gäller att överföra filer över ett säkert nätverk kan scp-kommandot vara mycket användbart. Det står för Secure Copy Protocol och överför filer och kataloger mellan två system via SSH-anslutning (Secure Shell). Med ssh kan du vara säker på säkerheten för dina filer eftersom de är krypterade som standard. I enklare termer är scp-kommandot en säkrare version av cp-kommandot, som du kan läsa allt om i vår Linux Terminal-kommandoartikel.

Så här använder du scp-kommandot: Syntax och alternativ

Innan vi kan överföra filer via scp, låt oss se syntaxen och alternativen för kommandot här:

scp <[email protected]_ip_address:sökväg/till/källa/fil> <[email protected]_ip_adress:mål/sökväg>

Förstå syntaxen:

  • Först, <[email protected]_ip_address:sökväg/till/källa/fil> anger ”källa”-systemet varifrån du behöver överföra dina filer/kataloger.
  • För det andra, <[email protected]_ip_address:target/path> anger det ’mål’-system som du vill överföra dina filer/kataloger till.

Om du lämnar någon av parametrarna ovan, kommer scp-kommandot i Linux först att leta efter filen och sedan kopiera filen lokalt. Några av alternativen att para ihop med kommandot är:

OptionsDestination-PSanger vilken port som ska anslutas till värdsystemet. Om den utelämnas, kommer den att använda port 22 som standard.-pBevarar ändringstider, åtkomsttider och lägen från originalfilen när den kopieras till målsystemet.-rKopierar hela katalogen till målsystemet rekursivt.-JAnvänds för att ansluta källsystem och destinationssystem via ett proxysystem (hoppvärd).-3när denna flagga används kopierar den filerna till både målsystemet och det lokala systemet-4tvingar scp-kommandot att endast använda IPv4-adresser.-6tvingar scp-kommandot för att endast använda IPv6-adresser.

Hur man kopierar filer med kommandot scp

Innan du använder scp-kommandot i Linux finns det några förutsättningar som du måste uppfylla på både värd- och målsystemen:

  • ssh bör installeras
  • root-åtkomst eller någon användare med sudo-privilegier

Kopiera filer från lokal värd till fjärrmål

Om du har en fil som du behöver överföra från ditt lokala system till ett fjärrmål, måste du använda följande syntax:

scp @:

Om ovanstående syntax kan verka komplicerad, kommer ett exempel att rensa bort det:

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

I exemplet ovan:

  • test.txt är namnet på filen som ska överföras och den finns i den aktuella katalogen i det lokala systemet.
  • test är användarnamnet på målsystemet.
  • 139.144.11.105 är IP-adressen för målsystemet.
  • /home/remote2/Documents/ är platsen på målsystemet där den överförda filen kommer att sparas.

Kopiera filer från fjärrvärd till lokalt mål

Om du behöver överföra en fil från en fjärrvärd till din lokala dator, använd följande scp-kommandosyntax på ditt Linux-system:

scp @:

Låt oss till exempel säga att du behöver överföra en fil med namnet test.py från fjärrservern du arbetar på, använd det här kommandot:

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

I det här exemplet:

  • test är fjärrvärdens användarnamn.
  • 10.10.11.113 är fjärrvärdens IP-adress.
  • /home/test/test1.py är sökvägen till filen som ska överföras från fjärrvärden.
  • ~/test1.py är namnet på filen efter att den har överförts till den lokala maskinen och lagrats i hemkatalogen.

Överför filer från en fjärrvärd till ett annat fjärrmål

Med kommandot scp kan du inte bara överföra filer mellan ditt lokala system och en fjärrdator utan även överföra filer mellan två fjärrsystem. Men innan du kan överföra filer från ett fjärrsystem till ett annat fjärrsystem, rekommenderas det att generera en privat ssh-nyckel och en offentlig ssh-nyckel på källsystemet och lagra en kopia av den publika nyckeln i destinationssystemet.

I allmänhet klagar användare på felet ”Värdnyckelverifiering misslyckades” när de överför filer mellan två fjärrsystem. För att kringgå felet, använd en ssh-nyckel som ett extra mått. Vi har förklarat hur du kan göra det här:

1. Skapa ett offentligt/privat nyckelpar på källservern med det här kommandot:

ssh-keygen -t

2. För krypteringsalgoritmer kan du använda ”rsa”, som är den vanligaste algoritmen eller någon annan algoritm du väljer.

3. Sedan kommer du att bli ombedd att välja platsen för att lagra ssh-nyckeln. Du kan antingen lagra den på valfri plats eller på standardplatsen.

4. För lösenordsfrasen kan du ange vad du vill eller lämna det tomt genom att trycka på Enter.

5. Kopiera sedan den publika nyckeln till destinationsservern med kommandot nedan. Med detta kan du till och med logga in på destinationssystemet utan lösenord med ssh.

ssh-copy-id @

Obs: den lösenordslösa metoden för inloggning fungerar bara för den användare som du har genererat ssh-nyckeln för.

6. När du har skapat och lagrat ssh-nyckeln på fjärrservern, använd denna scp-kommandosyntax för att utbyta filer mellan två fjärrsystem som kör Linux:

scp @: @:

Låt oss säga att du behöver överföra en fil med namnet test.txt från en fjärrvärd till en annan fjärrmottagare, använd kommandot:

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

I det här exemplet:

  • remote1 är namnet på användaren i fjärravsändarvärden
  • 10.10.11.113 är IP-adressen för fjärravsändarvärden
  • /home/test1/test.txt är sökvägen till filen som ska skickas
  • remote2 är namnet på användaren i fjärrmottagarens mål
  • 10.11.27.111 är IP-adressen för fjärrmottagarens mål
  • /home/remote2/Documents/test1.txt är namnet och sökvägen som ska sparas för att filen ska tas emot.

Överför flera filer med kommandot scp

Att överföra flera filer en efter en kan vara en tråkig uppgift för alla. Istället kan du använda syntaxen nedan för att utbyta filer med scp-kommandot på Linux:

scp @:

Till exempel – Anta att du behöver skicka fyra filer, inklusive test1.txt, test2.py, test3.sh och test4.c, till en fjärrmottagare, du kan använda kommandot nedan:

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

Låt oss förstå hur kommandot i exemplet fungerar och vad det gör:

  • -p 2222 används för att specificera att ansluta via port 22
  • test1.txt test2.py test3.sh test4.c är namnet på filerna som ska överföras
  • remote_1 är användarnamnet för det mottagande systemet
  • 10.10.11.113 är mottagarens IP-adress
  • /home/remote_1/Documents refererar till sökvägen för att lagra den mottagna filen.

Du kan till och med använda jokertecken för att skicka flera filer med samma tillägg som visas nedan:

scp . @:

Om du till exempel behöver skicka alla .py-filer till en fjärrserver, använd nedanstående scp-kommando i Linux-terminalen:

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

Här,

  • *.py betecknar alla python-filer
  • remote1 är mottagarens användarnamn
  • 10.10.11.113 är mottagarens IP-adress
  • /home/remote_1/ är platsen för att lagra den mottagna filen

Vanliga frågor

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

Secure Copy Protocol eller scp är ett protokoll som är baserat på SSH-teknik och använder kryptering och autentisering för utbyte av filer mellan två värdar. Detta säkerställer fullständig datasäkerhet och integritet mellan de två värdarna.

Är SCP säkrare än SFTP?

Både SCP- och SFTP-protokollen är i paritet när det gäller säkerhet. Den största fördelen med att använda scp över SFTP är de snabba överföringshastigheterna som är särskilt användbara i nätverk med hög latens.

Överför filer säkert med scp Command i Linux

Någon gång i tiden behöver varje användare utbyta några filer över nätverket. Scp-kommandot gör det enkelt att överföra filer säkert och effektivt även på ett nätverk med hög latens. Visst kan det också vara användbart att känna till de olika scp-alternativen och syntaxen. Du kan också hänvisa till våra guider om hur man byter namn på en fil i Linux och hur man tar bort en fil i Linux för att ytterligare förbättra dina filhanteringsfärdigheter på operativsystemet. Vi hoppas att den här artikeln hjälpte dig att lära dig hur du använder kommandot scp för att överföra filer på Linux-datorer. Om du stöter på några problem när du använder kommandot, låt oss veta i kommentarsektionen.