GNU/Linux >> Znalost Linux >  >> Linux

Jak bezpečně kopírovat soubory mezi hostiteli Linuxu pomocí SCP a SFTP

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

Linux
  1. Jak přenášet soubory mezi dvěma počítači pomocí příkazů nc a pv

  2. Jak nahrávat nebo stahovat soubory/adresáře pomocí sFTP v Linuxu

  3. Bezpečně přenášejte soubory a složky mezi počítači pomocí Croc

  1. Jak přenášet soubory mezi servery v Linuxu pomocí SCP a FTP

  2. Jak bezpečně přenášet soubory pomocí SCP

  3. Jak bezpečně přenášet soubory pomocí příkazu SCP v systému Linux

  1. Kopírování souborů mezi Linuxem a FreeDOSem

  2. Jak kopírovat soubory a adresáře v Linuxu

  3. Jak kopírovat více souborů současně pomocí scp