Säkert kopieringsprotokoll
Utvecklare | OpenSSH-projektet |
---|---|
Förvar | |
Skrivet i | C |
Operativ system | Cross-plattform |
Typ | Kommando , kommunikationsprotokoll |
Hemsida |
Secure copy protocol ( SCP ) är ett sätt att säkert överföra datorfiler mellan en lokal värd och en fjärrvärd eller mellan två fjärrvärdar. Det är baserat på Secure Shell (SSH)-protokollet. "SCP" hänvisar vanligtvis till både Secure Copy Protocol och själva programmet.
Enligt OpenSSH- utvecklare i april 2019 är SCP föråldrat, oflexibelt och inte lätt fixat; de rekommenderar användning av modernare protokoll som SFTP och rsync för filöverföring. Från och med OpenSSH version 9.0 scp- klienten därför SFTP för filöverföringar som standard istället för det äldre SCP/RCP-protokollet.
Secure Copy Protocol
SCP är ett nätverksprotokoll , baserat på BSD RCP -protokollet , som stöder filöverföringar mellan värdar i ett nätverk. SCP använder Secure Shell (SSH) för dataöverföring och använder samma mekanismer för autentisering, och säkerställer därigenom äktheten och konfidentialiteten för data under överföring . En klient kan skicka (ladda upp) filer till en server, eventuellt inklusive deras grundläggande attribut (behörigheter, tidsstämplar). Klienter kan också begära filer eller kataloger från en server (nedladdning). SCP körs över TCP-port 22 som standard. Liksom RCP finns det ingen RFC som definierar detaljerna för protokollet.
Fungera
Normalt initierar en klient en SSH-anslutning till fjärrvärden och begär att en SCP-process ska startas på fjärrservern. Den fjärranslutna SCP-processen kan fungera i ett av två lägen:
- källläge, som läser filer (vanligtvis från disk) och skickar tillbaka dem till klienten, eller
- sink-läge, som accepterar filerna som skickas av klienten och skriver dem (vanligtvis till disk) på fjärrvärden.
För de flesta SCP-klienter triggas källläget i allmänhet med -f -flaggan (från), medan sjunkläget triggas med -t (to). Dessa flaggor används internt och är inte dokumenterade utanför SCP-källkoden.
Fjärrkontroll till fjärrläge
Tidigare, i fjärr-till-fjärr säker kopia, öppnar SCP-klienten en SSH-anslutning till källvärden och begär att den i sin tur öppnar en SCP-anslutning till destinationen. (Fjärr-till-fjärrläge stödde inte att öppna två SCP-anslutningar och använda den ursprungliga klienten som mellanhand). Det är viktigt att notera att SCP inte kan användas för att fjärrkopiera från källan till destinationen när man arbetar i lösenords- eller tangentbordsinteraktivt autentiseringsläge, eftersom detta skulle avslöja destinationsserverns autentiseringsuppgifter för källan. Det är dock möjligt med nyckelbaserade eller GSSAPI -metoder som inte kräver användarinmatning.
På senare tid har fjärr-till-fjärrläge stöd för att dirigera trafik genom klienten som skapade överföringen, även om det är en tredje part i överföringen. På så sätt måste auktoriseringsuppgifterna endast finnas hos den ursprungliga klienten, den tredje parten.
Problem med att använda pratsamma skalprofiler
SCP förväntar sig inte textkommunikation med SSH-inloggningsskalet. Text som sänds på grund av SSH-profilen (t.ex. eko "Välkommen" i .bashrc- filen) tolkas som ett felmeddelande, och en nollrad ( eko "" ) gör att SCP-klienten låser sig i väntan på att felmeddelandet ska slutföras.
Säker kopiering (program för fjärrkopiering av filer)
SCP -programmet är ett mjukvaruverktyg som implementerar SCP-protokollet som en servicedemon eller klient. Det är ett program för att utföra säker kopiering.
Det kanske mest använda SCP-programmet är OpenSSH- kommandoradsprogrammet scp , som finns i de flesta SSH-implementationer. scp - programmet är den säkra analogen till rcp -kommandot. scp - programmet måste vara en del av alla SSH-servrar som vill tillhandahålla SCP-tjänst, eftersom scp också fungerar som SCP-server.
Vissa SSH-implementationer tillhandahåller scp2 -programmet, som använder SFTP- protokollet istället för SCP, men ger samma kommandoradsgränssnitt som scp . scp är då vanligtvis en symbolisk länk till scp2 .
Syntax
Vanligtvis är en syntax för scp -program som syntaxen för cp (kopia) :
Kopiera lokal fil till en fjärrvärd:
scp LocalSourceFile- användare @ remotehost : katalog / TargetFile
Kopierar fil från fjärrvärd och kopierar mapp från fjärrvärd (med -r switch):
scp user @ remotehost : katalog / SourceFile LocalTargetFile scp -r user @ host : directory / SourceFolder LocalTargetFolder
Observera att om fjärrvärden använder en annan port än standarden på 22, kan den anges i kommandot. Till exempel, kopiera en fil från värd:
scp -P 2222 användare @ värd : katalog / SourceFile TargetFile
Andra kunder
Eftersom Secure Copy Protocol endast implementerar filöverföringar är GUI SCP-klienter sällsynta, eftersom implementeringen kräver ytterligare funktionalitet ( åtminstone kataloglista) . Till exempel använder WinSCP SFTP-protokollet som standard. Även när de arbetar i SCP-läge är klienter som WinSCP vanligtvis inte rena SCP-klienter, eftersom de måste använda andra metoder för att implementera den extra funktionaliteten (som kommandot ls ) . Detta medför i sin tur problem med plattformsberoende.
Mer omfattande verktyg för att hantera filer över SSH är SFTP- klienter.
säkerhet
tillkännagavs sårbarheten CVE - 2019-6111 relaterad till openssh SCP-verktyget och protokollet som tillåter användare att skriva över godtyckliga filer i SCP-klientens målkatalog.