Nedávno jsme se podívali na rsync
příkaz pro synchronizaci souborů mezi umístěními a diskutovali jsme o podobnosti použití a syntaxi při duplikování souborů a adresářů pomocí cp
příkaz. V tomto článku jsme se podívali na přesun bitů tam a zpět na stejném boxu, mezi souborovými systémy nebo mezi zařízeními. V nadcházejícím článku se podíváme více na rsync
jako nástroj pro synchronizaci vzdálených souborových systémů s místní nebo záložní verzí. V tomto článku se chci podívat na jeden z nejužitečnějších a nejpoužívanějších nástrojů v Linuxu sysadmin toolbox – scp
příkaz.
Co je SCP?
Secure Copy neboli scp
, je zabezpečená verze staršího rcp
nástroj (který se stále používá, ale méně běžný) zahrnutý v sadě nástrojů OpenSSH.
OpenSSH začalo jako rozvětvení BSD původního zabezpečeného komunikačního protokolu SSH, který se od té doby znovu licencoval jako „nesvobodný“, a proto není obecně dostupný pro Linux. OpenSSH je stále udržován pod licencí BSD a je dostupný pro širokou škálu platforem. Obsahuje několik běžných nástrojů pro bezpečný vzdálený přístup, včetně generování klíčů, scp
a sftp
(zabezpečená verze FTP, ke které se dostaneme za chvíli).
Nedávno vývojáři OpenSSH naznačili, že zvažují scp
být zastaralý (věří, že je „zastaralý, neflexibilní a nelze jej snadno opravit“). Není jasné, kdy přestane být dostupný v budoucích verzích OpenSSH, i když je těžké si představit, že bude v dohledné době zrušen.
Použijte SCP
Užitečnost scp
spočívá v jeho jednoduchosti. Používám jej k rychlému přesunu souborů do vzdáleného souborového systému z prostředí shell:
skipworthy ~ scp ./enable/foo/testfoo showme:/home/skipworthy/enable
skipworthy@showme's password:
testfoo 100% 25 8.0KB/s 00:00
Snadné jako koláč. Mohu také získat soubor ze vzdáleného umístění:
skipworthy ~ scp showme:/home/skipworthy/enable/demofoo ~/enable/
skipworthy@showme's password:
demofoo 100% 0 0.0KB/s 00:00
skipworthy ~ ls ./enable
bar demofoo foo
Dostupné možnosti připojení jsou stejné jako u ssh
. Například:
skipworthy ~ scp -P 2020 -i ~/.ssh/id_rsa ./test.txt showme:/home/skipworthy/enable/
test.txt 100% 0 0.0KB/s 00:00
-P
určuje port pro ssh
připojení, -i
určuje ssh
id klíč, který se má použít pro ověření:Obě tyto možnosti jsou užitečné pro skripty. Všimněte si, že scp -P
se liší od ssh -p
pro specifikaci portu. Ve výše uvedeném příkladu jsem nastavil umístění ssh
klíč (~/.ssh/id_rsa
) – který jsem také vygeneroval pomocí sady nástrojů OpenSSH – k ověření přístupu ke vzdálenému zařízení. Zde se dozvíte o kopiích souborů SSH.
Takže můžete vidět scp
je opravdu užitečný nástroj, který máte na dosah ruky. Existuje určitá diskuse o moudrosti používání tohoto nástroje v zabezpečeném prostředí, takže YMMV. Navrhoval bych, abyste si něco přečetli a sami se rozhodli.
[ Také by se vám mohlo líbit: Nástroje Sysadmin:Používání nástroje rsync ke správě zálohování, obnovy a synchronizace souborů ]
Alternativy
Co když z jakéhokoli důvodu nemůžeme použít scp
? Doporučuji dvě další možnosti, které se velmi snadno používají:rsync
, o kterém jsme mluvili zde a podrobněji jej probereme v jiném článku, a sftp
. Ani jedna z těchto možností není tak pohodlná jako scp
, oba mají některé užitečné funkce.
sftp
zní to v podstatě takto:Secure FTP. Funguje jako FTP přes připojení spravované SSH. I když jeho použití není tak jednoduché jako „jeden a hotovo“ scp
příkaz, nabízí řadu důmyslnějších možností souborového systému a možnost interaktivního připojení ke vzdálenému souborovému systému. Vyžaduje, aby byl cílový souborový systém nakonfigurován pro sftp
přístup.
Pojďme se připojit k sftp
server interaktivně:
skipworthy ~ sftp enable@ganymede
enable@ganymede's password:
Connected to ganymede.
sftp> pwd
Remote working directory: /upload
sftp> mkdir test
sftp> ls -al
drwxr-xr-x 3 1002 1002 18 Nov 24 21:53 .
drwxr-xr-x 3 0 1002 20 Nov 24 21:33 ..
drwxr-xr-x 2 1002 1002 6 Nov 24 21:53 test
Pokud stiskneme Tab dvakrát, můžeme vidět seznam příkazů dostupných v shellu:
sftp>
bye cd chdir chgrp chmod chown df dir
exit get help lcd lchdir lls lmkdir ln
lpwd ls lumask mkdir mget mput progress put
pwd quit reget rename reput rm rmdir symlink
version ! ?
Takže můžete vidět, že je možné komunikovat se vzdáleným souborovým systémem. Opět hlavní nevýhodou je, že cíl musí být nakonfigurován pro sftp
přístup a přístup k určitému adresáři musí být nakonfigurován a omezen správcem tohoto systému. Díky tomu je bezpečnější, i když méně pohodlná možnost než scp
. Uvědomte si také, že i když ve skutečnosti není možné provádět improvizované přenosy souborů, jako je scp
, je možné psát skripty a vkládat aliasy shellu, aby to fungovalo plynuleji, pokud je to váš jam.
[ Přemýšlíte o bezpečnosti? Podívejte se na tohoto bezplatného průvodce posílením zabezpečení hybridního cloudu a ochranou vaší firmy. ]
Sbalit
Poznámka na závěr:Oba tyto nástroje se spoléhají na SSH toolbox, který je velmi důležitou součástí administrace linuxových systémů, takže vřele doporučuji se s ním zorientovat. Zvažte tyto skvělé články od autorů Enable Sysadmin:
- Jak SSH zavádí zabezpečenou komunikaci
- Osm způsobů ochrany přístupu SSH ve vašem systému
- SSH bez hesla pomocí párů veřejného a soukromého klíče