SSH je záchranář, když potřebujete vzdáleně spravovat počítač, ale věděli jste, že můžete také nahrávat a stahovat soubory? Pomocí klíčů SSH můžete přeskočit zadávání hesel a použít je pro skripty!
Tento proces funguje v systémech Linux a Mac OS za předpokladu, že jsou správně nakonfigurovány pro přístup SSH. Pokud používáte Windows, můžete použijte Cygwin k získání funkcí podobných Linuxu as trochou vylepšení Spustí se také SSH .
Kopírování souborů přes SSH
Zabezpečená kopie je opravdu užitečný příkaz a jeho použití je opravdu snadné. Základní formát příkazu je následující:
scp [options] original_file cílový_soubor
Největším kickerem je způsob formátování vzdálené části. Když adresujete vzdálený soubor, musíte to udělat následujícím způsobem:
uživatel @ server: cesta / k / souboru
Serverem může být adresa URL nebo adresa IP. Poté následuje dvojtečka a poté cesta k příslušnému souboru nebo složce. Podívejme se na příklad.
scp –P 40050 Desktop / url.txt [email protected]: ~ / Desktop / url.txt
Tento příkaz obsahuje příznak [-P] (všimněte si, že se jedná o velké písmeno P). To mi umožňuje určit číslo portu místo výchozího 22. To je pro mě nezbytné kvůli způsobu, jakým jsem nakonfiguroval svůj systém.
Dále je můj původní soubor „url.txt“, který je uvnitř adresáře s názvem „Desktop“. Cílový soubor je v souboru „~ / Desktop / url.txt“, který je stejný jako „/user/yatri/Desktop/url.txt“. Tento příkaz spouští uživatel „yatri“ na vzdáleném počítači „192.168.1.50“.
Co když potřebujete udělat opak? Podobně můžete kopírovat soubory ze vzdáleného serveru.
Zde jsem zkopíroval soubor ze složky „~ / Desktop /“ vzdáleného počítače do složky „Desktop“ mého počítače.
Chcete-li kopírovat celé adresáře, budete muset použít příznak [-r] (všimněte si, že se jedná o malá písmena r).
Můžete také kombinovat vlajky. Namísto
scp –P –r…
Můžete prostě udělat
SCP - Ale…
Nejtěžší částí je, že dokončení karty nemusí vždy fungovat, takže je užitečné mít spuštěný další terminál s relací SSH, abyste věděli, kam dát věci.
SSH a SCP bez hesel
Bezpečné kopírování je skvělé. Můžete jej vložit do skriptů a nechat jej zálohovat na vzdálené počítače. Problém je v tom, že nemusíte být vždy nablízku, abyste zadali heslo. A řekněme si upřímně, že je opravdu velká bolest vložit heslo do vzdáleného počítače, ke kterému máte evidentně stále přístup.
Pomocí hesel se můžeme obejít pomocí klíčových souborů. Můžeme nechat počítač vygenerovat dva klíčové soubory - jeden veřejný, který patří na vzdálený server, a jeden soukromý, který je ve vašem počítači a musí být zabezpečený - a tyto budou použity místo hesla. Docela pohodlné, že?
Na počítači zadejte následující příkaz:
ssh-keygen –t rsa
Tím se vygenerují dva klíče a vloží se do nich:
~ / .ssh /
s názvy „id_rsa“ pro váš soukromý klíč a „id_rsa.pub“ pro váš veřejný klíč.
Po zadání příkazu se zobrazí dotaz, kam klíč uložit. Chcete-li použít výše uvedené výchozí hodnoty, stiskněte klávesu Enter.
Dále budete požádáni o zadání přístupové fráze. Stisknutím klávesy Enter ponechejte toto pole prázdné a poté, co požádá o potvrzení, proveďte to znovu. Dalším krokem je zkopírování souboru veřejného klíče do vzdáleného počítače. K tomu můžete použít scp:
Cíl vašeho veřejného klíče je na vzdáleném serveru v následujícím souboru:
~ / .ssh / authorized_keys2
K tomuto souboru lze připojit další veřejné klíče, podobně jako soubor ~ / .ssh / known_hosts. To znamená, že pokud byste chtěli přidat další veřejný klíč pro svůj účet na tomto serveru, zkopírovali byste obsah druhého souboru id_rsa.pub do nového řádku ve stávajícím souboru authorized_keys2.
Bezpečnostní aspekty
Není to méně bezpečné než heslo?
V praktickém smyslu ne tak docela. Vygenerovaný soukromý klíč je uložen v počítači, který používáte, a nikdy se nepřenáší, dokonce ani k ověření. Tento soukromý klíč POUZE odpovídá tomuto JEDNOM veřejnému klíči a připojení je třeba zahájit z počítače, který má soukromý klíč. RSA je docela bezpečný a standardně používá 2048 bitovou délku.
Teoreticky je to vlastně docela podobné použití vašeho hesla. Pokud někdo zná vaše heslo, vaše zabezpečení zmizí z okna. Pokud někdo má váš soubor soukromého klíče, pak dojde ke ztrátě zabezpečení pro jakýkoli počítač, který má odpovídající veřejný klíč, ale k jeho získání potřebuje přístup k vašemu počítači.
Může to být bezpečnější?
Heslo můžete kombinovat se soubory klíčů. Postupujte podle výše uvedených kroků, ale zadejte silnou přístupovou frázi. Nyní, když se připojujete přes SSH nebo používáte SCP, budete potřebovat správný soubor soukromého klíče jakož i správnou přístupovou frázi.
Jakmile jednou zadáte přístupovou frázi, nebudete o ni znovu požádáni, dokud relaci neukončíte. To znamená, že při prvním SSH / SCP budete muset zadat své heslo, ale všechny následující akce ho nevyžadují. Jakmile se odhlásíte z počítače (nikoli vzdáleného) nebo zavřete okno terminálu, budete jej muset zadat znovu. Tímto způsobem skutečně neobětujete bezpečnost, ale také nebudete neustále obtěžováni hesly.
Mohu znovu použít pár veřejného / soukromého klíče?
To je opravdu špatný nápad. Pokud někdo najde vaše heslo a použijete stejné heslo pro všechny své účty, bude mít nyní přístup ke všem těmto účtům. Podobně je váš tajný klíčový soubor také velmi tajný a důležitý. (Další informace najdete na Jak se zotavit po narušení hesla vašeho e-mailu )
Nejlepší je vytvořit nové páry klíčů pro každý počítač a účet, který chcete propojit. Tímto způsobem, pokud se některý z vašich soukromých klíčů nějakým způsobem zachytí, pak na jednom vzdáleném počítači ohrozíte pouze jeden účet.
Je také velmi důležité si uvědomit, že všechny vaše soukromé klíče jsou uloženy na stejném místě: v ~ / .ssh / v počítači můžete použijte TrueCrypt k vytvoření zabezpečeného šifrovaného kontejneru vytvářet symbolické odkazy ve vašem adresáři ~ / .ssh /. Podle toho, co dělám, to používám superparanoidní superbezpečná metoda pro uklidnění mé mysli.
Použili jste SCP v některých skriptech? Používáte místo hesel klíčové soubory? Sdílejte své vlastní odborné znalosti s ostatními čtenáři v komentářích!