Protokol zabezpečeného kopírování - Secure copy protocol
| Vývojáři | Projekt OpenSSH |
|---|---|
| Úložiště | github |
| Napsáno | C |
| Operační systém | Cross-platform |
| Typ | Příkaz |
| webová stránka | www |
Secure Copy Protocol ( SCP ) je prostředek pro bezpečný přenos počítačových souborů mezi místním hostitelem a vzdáleným hostitelem nebo mezi dvěma vzdálenými hostiteli. Je založen na protokolu Secure Shell (SSH). „SCP“ běžně označuje protokol Secure Copy Protocol i samotný program. Podle vývojářů OpenSSH v dubnu 2019 je SCP zastaralé, nepružné a není snadno opravitelné; pro přenos souborů doporučují používat modernější protokoly jako sftp a rsync .
Protokol zabezpečeného kopírování
SCP je síťový protokol , založený na BSD RCP protokol, který podporuje přenos souborů mezi hostiteli v síti. SCP používá Secure Shell (SSH) pro přenos dat a používá stejné mechanismy pro ověřování, a tím zajistit pravost a utajení těchto dat v tranzitu . Klient může odesílat (nahrávat) soubory na server, volitelně včetně jejich základních atributů (oprávnění, časová razítka). Klienti mohou také požadovat soubory nebo adresáře ze serveru (stahování). Ve výchozím nastavení běží SCP přes TCP port 22. Stejně jako RCP neexistuje žádný RFC, který by definoval specifika protokolu.
Funkce
Klient obvykle zahájí připojení SSH ke vzdálenému hostiteli a požádá o spuštění procesu SCP na vzdáleném serveru. Vzdálený proces SCP může fungovat v jednom ze dvou režimů:
- zdrojový režim, který čte soubory (obvykle z disku) a odesílá je zpět klientovi, popř
- sink mode, který přijímá soubory odeslané klientem a zapisuje je (obvykle na disk) na vzdáleném hostiteli.
U většiny klientů SCP je zdrojový režim obecně spuštěn s -fpříznakem (od), zatímco režim jímky je spuštěn pomocí -t(do). Tyto příznaky se používají interně a nejsou dokumentovány mimo zdrojový kód SCP.
Vzdálený do vzdáleného režimu
V minulosti v zabezpečené kopii vzdáleně vzdáleně klient SCP otevíral připojení SSH ke zdrojovému hostiteli a požadoval, aby zase otevřel připojení SCP k cíli. (Režim vzdáleného vzdáleného připojení nepodporoval otevření dvou připojení SCP a použití původního klienta jako prostředníka). Je důležité si uvědomit, že SCP nelze použít ke vzdálenému kopírování ze zdroje do cíle při provozu v režimu autentizace heslem nebo klávesnicí, protože by to odhalilo ověřovací pověření cílového serveru ke zdroji. Je to však možné pomocí metod založených na klíčích nebo GSSAPI , které nevyžadují vstup uživatele.
Režim vzdáleného vzdáleného přenosu v poslední době podporuje směrování provozu prostřednictvím klienta, který přenos vytvořil, přestože se jedná o třetí stranu přenosu. Tímto způsobem musí být autorizační údaje umístěny pouze u původního klienta, třetí strany.
Problémy s použitím hovorných profilů skořepiny
SCP neočekává komunikaci textu s přihlašovacím shellem ssh. Text přenášený díky profilu ssh (např. Echo „Welcome“ v souboru .bashrc) je interpretován jako chybová zpráva a nulový řádek (echo „“) způsobí zablokování scp čekající na dokončení chybové zprávy.
Zabezpečené kopírování (program pro vzdálené kopírování souborů)
Program SCP je softwarový nástroj implementující protokol SCP jako servisní démon nebo klient. Je to program pro provádění zabezpečeného kopírování.
Asi nejpoužívanějším programem SCP je program příkazového řádku OpenSSH scp, který je součástí většiny implementací SSH. scpProgram je bezpečný analog rcppříkazu. scpProgram musí být součástí všech serverů SSH, které chtějí poskytovat SCP službu, jak scpfunguje jako SCP serveru taky.
Některé implementace SSH poskytují scp2program, který používá protokol SFTP místo SCP, ale poskytuje stejné rozhraní příkazového řádku jako scp. scpje pak obvykle symbolickým odkazem na scp2.
Syntax
Syntaxe scpprogramu je obvykle jako syntaxe cp(kopie) :
Kopírování lokálního souboru na vzdáleného hostitele:
scp LocalSourceFile user@remotehost:directory/TargetFile
Kopírování souboru ze vzdáleného hostitele a kopírování složky ze vzdáleného hostitele (pomocí přepínače -r):
scp user@remotehost:directory/SourceFile LocalTargetFile scp -r user@host:directory/SourceFolder LocalTargetFolder
Všimněte si, že pokud vzdálený hostitel používá jiný než výchozí port 22, lze jej zadat v příkazu. Například kopírování souboru z hostitele:
scp -P 2222 user@host:directory/SourceFile TargetFile
Ostatní klienti
Protože protokol Secure Copy Protocol implementuje pouze přenosy souborů, jsou klienti GUI SCP vzácní, protože jejich implementace vyžaduje další funkce ( alespoň výpis adresářů ). Například WinSCP standardně používá protokol SFTP. I když pracují v režimu SCP, klienti jako WinSCP obvykle nejsou čistými klienty SCP, protože k implementaci dalších funkcí (jako je lspříkaz ) musí použít jiné prostředky . To zase přináší problémy se závislostí na platformě.
Komplexnějšími nástroji pro správu souborů přes SSH jsou klienti SFTP .
Bezpečnostní
V roce 2019 byla oznámena zranitelnost CVE - 2019-6111 související s nástrojem a protokolem openssh SCP a protokolem, který uživatelům umožňuje přepsat libovolné soubory v cílovém adresáři klienta SCP.