Troškou historie
Na počátku byl protokol RCP (remote copy), který známe především z operačních systémů BSD. Obrovským problémem zde však byla bezpečnost přenosu souborů. Pomineme-li fakt, že tento protokol používal soubory .rhosts (později kerberos), jeho veškerá komunikace probíhala nešifrovaně a kdokoliv tak mohl komunikaci snadno odposlechnout. Na tento podnět vývojáři navrhnuli nový protokol označovaný jako SCP (secure copy). Protokol SCP sám o sobě nezajišťuje šifrování ani autentizaci - o obojí se stará protokol SSH, pod kterým SCP běží. Můžeme tedy říct, že SCP je stejně bezpečné jako SSH. K dispozici jsou dnes dvě verze tohoto protokolu, a to SCP1 a SCP2. Přestože protokol SCP přinesl do systému například oproti protokolu FTP značná vylepšení, je dnes čím dál častěji nahrazován novějším protokolem označovaným jako SFTP (secure file transfer protocol).
SSH neboli Secure Shell je klient/server protokol v síti TCP/IP, který umožňuje bezpečnou komunikaci mezi dvěma počítači pomocí transparentního šifrování přenášených dat. Pracuje na portu TCP/22. Pokrývá tři základní oblasti bezpečné komunikace: autentizaci obou účastníků komunikace, šifrování přenášených dat a integritu dat. Převzato z: http://cs.wikipedia.org/wiki/Ssh
FTP (File Transfer Protocol) je protokol aplikační vrstvy z rodiny TCP/IP, je určen pro přenos souborů mezi počítači, na kterých mohou běžet velmi rozdílné operační systémy. Je to jeden z nejstarších protokolů, pracuje osmibitově na principu klient-server na portech TCP/20 a TCP/21. Port 20 slouží k vlastnímu přenosu dat, port 21 slouží ke kontrole a jsou jím také přenášeny ftp příkazy. Když jsou přenášena data, je kontrolní port nečinný. To může způsobit problémy v případě přenosu velkého množství dat přes firewally, které přenos po delší době nečinnosti kontrolního portu přeruší. I když mohou být data úspěšně přenesena, je přesto generována chyba. Převzato z: http://cs.wikipedia.org/wiki/Ftp
Výhody oproti běžnému FTP
- SCP je šifrovaný.
- Umí pracovat se symbolickými i hard linky.
- Podporuje přenos atributů souborů (datum vytvoření, vlastník, atd.).
- Lze kopírovat i soubory mezi dvěma vzdálenými počítači.
- Nemá problém s obousměrným navazováním spojení.
- Umí omezit rychlost kopírování.
FTPS nebo také FTP/SSL či FTP se SSL/TLS označuje v informatice různá rozšíření protokolu FTP, která zajišťují zabezpečený přenos citlivých informací přes počítačovou síť (přihlašovací jméno, heslo nebo i vlastní přenášená data). FTPS by nemělo být zaměňováno za SFTP nebo Secure FTP (FTP přes SSH). Převzato z: http://cs.wikipedia.org/wiki/FTPS
Výhody oproti SFTP
Program scp je součástí všech SSH serverů, které poskytují službu SCP, a zajišťuje jak funkci klienta, tak funkci serveru (pro připojení klienta je na opačné straně program scp spuštěn v roli serveru). Obvykle není potřeba doinstalovávat další program nebo něco povolovat.
SSH File Transfer Protocol nebo také SFTP označuje v informatice síťový protokol, který umožňuje přenos souborů mezi dvěma počítači a manipulaci s nimi. Pro vlastní přenos dat obvykle využívá protokol SSH-2, který zajišťuje zabezpečený přenos dat, avšak je navržen tak, aby ho bylo možné používat i nad jiným protokolem. Protokol SFTP je používán jako náhrada za příliš jednoduchý protokol SCP. Převzato z: http://cs.wikipedia.org/wiki/SSH_file_transfer_protocol
Nevýhody oproti SFTP
Neumí některé základní příkazy systému.
Program WinSCP (Windows) ve výchozím nastavení při použití protokolu SCP skrytě využívá dalších protokolů, aby mohl provádět veškeré operace se soubory.
Použití:
scp [-1246BCpqrv] [-c šifra] [-F alternativní_konfigurace_ssh] [-i soukromý_klíč] [-l rychlost_přenosu] [-o volby_ssh] [-P port] [-S program] [[uživatel@]počítač1:]soubor1 [...][[uživatel@]počítač2:]počítač2
Volby:
- -1 Nastaví SCP pro použití s protokolem 1.
- -2 Nastaví SCP pro použití s protokolem 2.
- -4 Nastaví SCP pro použití pouze s adresami typu IPv4.
- -6 Nastaví SCP pro použití pouze s adresami typu IPv6.
- -B Bude pracovat v dávkovém režimu (nebude se ptát na přihlašovací ani přístupová hesla).
- -C Povolí kompresi. Předá programu ssh volbu -C pro povolení komprese.
- -c šifra Udává druh šifry, která má být použita pro šifrování přenosu dat. Tato volba je přímo předávána programu ssh.
- -F ssh_config Udává alternativní cestu ke konfiguračnímu souboru ssh. Tato volba je přímo předávána programu ssh.
- -i soubor Udává jméno souboru, z něhož se čte identita (soukromý klíč) pro RSA autentizaci. Tato volba je přímo předávána programu ssh.
- -l limit Omezí průtok dat na specifickou hodnotu udávanou v Kbit/s.
- -o ssh-volby Volby předávané programu ssh.
- -P port Určuje port použitý pro připojení na vzdálený počítač. Pro tuto volbu je použito velké písmeno, protože význam volby -p byl převzat z programu cp a rcp (zachování časů a práv souboru).
- -p Zachovává čas poslední změny, čas posledního přístupu a práva původního souboru.
- -q Vypne zobrazování statistiky.
- -Q Zapne zobrazování statistiky.
- -r Rekurzivně kopíruje celé adresáře.
- -S cesta-k-ssh Určuje cestu k programu ssh.-v Upovídaný režim. Zajistí, že příkazy scp a ssh budou vypisovat ladicí zprávy. Užitečné pro ladicí účely při problémech s autentizací a konfigurací.
Příklady použití
scp test.txt hodza@192.168.1.200:/home/hodza
Asi nejjednodušší příklad. V tomto případě se zkopíruje soubor test.txt z aktuálního adresáře na lokálním disku na vzdálený počítač s IP adresou 192.168.1.200 pod uživatelským účtem hodza do adresáře /home/hodza. Namísto adresy IP můžeme použít i doménové jméno cílového počítače. Před samotným kopírováním souboru budeme dotázání ne heslo k účtu hodza na stroji 192.168.1.200.
scp hodza@192.168.1.200:/home/hodza/test.txt ./
Výše uvedený příklad je přesným opakem toho prvního - ze serveru 192.168.1.200 a adresáře /home/hodza zkopírujeme soubor test.txt do našeho aktuálního adresáře na disku.
scp * hodza@192.168.1.200:/home/hodza
Důkaz toho, že SCP umí kopírovat více souborů za sebou. SCP zkopíruje všechny soubory v aktuálním adresáři na server 192.168.1.200 do složky /home/hodza.
scp -r pokus hodza@192.168.1.200:/home/hodza
Tento příkaz zkopíruje složku pokus včetně všech jejích podsložek na server 192.168.1.200 do složky /home/hodza.
scp hodza@192.168.1.200:/home/hodza/temp/test.txt hodza@192.168.1.200:/home/hodza
Zřejmě nejzajímavější příklad použití. Data jsou kopírována vzdáleně pouze mezi servery. Pozor - je důležité zajistit vzájemnou autentizaci mezi prvním a druhým severem (klíčem).
Praktické použití
Jak jsem se již zmínil, obrovskou výhodou SCP je jeho jednoduchost a všudypřítomnost na většině unixových systémů. Zatímco někteří uživatelé instalují FTP, servery, konfigurují je a vytvářejí pro ně bezpečnostní certifikáty, my máme svá data díky SCP dávno bezpečně přenesená.
Co protokol SCP odsouvá do pozadí, je fakt, že pro něj neexistuje žádné propracované grafické rozhraní. Částečnou výjimkou je několik málo programů typu SecPanel. Pomyslný hřebíček do rakve mu tak také zatlouká novější protokol SFTP, který nejenom že zvládá více operací se soubory a adresáři, ale lze ho také například pomocí rozhraní KIO slaves použít bez hlubších znalostí de facto v jakémkoliv programu z prostředí KDE.