O klíčích SSH
Klíče SSH poskytují bezpečnější způsob přihlášení k virtuálnímu privátnímu serveru pomocí SSH než použití samotného hesla. Zatímco heslo lze nakonec prolomit útokem hrubou silou, klíče SSH je téměř nemožné dešifrovat pouze hrubou silou. Generování páru klíčů vám poskytne dva dlouhé řetězce znaků:veřejný a soukromý klíč. Veřejný klíč můžete umístit na libovolný server a poté jej odemknout připojením k klientovi, který již soukromý klíč má. Když se oba shodují, systém se odemkne bez nutnosti zadání hesla. Zabezpečení můžete ještě více zvýšit ochranou soukromého klíče pomocí přístupové fráze.
Tuto příručku napsali hlavně lidé z DigitalOcean. Podívejte se na jejich skvělé, cenově konkurenční možnosti serveru na digitalocean.com
První krok – Vytvořte pár klíčů RSA
Prvním krokem je vytvoření páru klíčů na klientském počítači (je velká šance, že to bude pouze váš počítač):
ssh-keygen -t rsa
Krok 2 – Uložení klíčů a přístupové fráze
Jakmile zadáte příkaz Gen Key, dostanete několik dalších otázek:
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Zde můžete stisknout enter a uložit soubor do domovské stránky uživatele (v tomto případě se můj příklad uživatele nazývá demo).
Enter passphrase (empty for no passphrase):
Je na vás, zda chcete použít přístupovou frázi. Zadání přístupové fráze má své výhody:bezpečnost klíče, bez ohledu na to, jak je šifrovaný, stále závisí na skutečnosti, že není viditelný pro nikoho jiného. Pokud by se soukromý klíč chráněný přístupovou frází dostal do držení neoprávněných uživatelů, nebudou se moci přihlásit k jeho přidruženým účtům, dokud heslo nezjistí, čímž získá hacknutý uživatel nějaký čas navíc. Jedinou nevýhodou přístupové fráze je samozřejmě nutnost ji zadávat pokaždé, když použijete pár klíčů.
Celý proces generování klíčů vypadá takto:
ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/demo/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/demo/.ssh/id_rsa. Your public key has been saved in /home/demo/.ssh/id_rsa.pub. The key fingerprint is: 4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a The key's randomart image is: +--[ RSA 2048]----+ | .oo. | | . o.E | | + . o | | . = = . | | = S = . | | o + = + | | . o + o . | | . o | | | +-----------------+
Veřejný klíč je nyní umístěn v /home/demo/.ssh/id_rsa.pub Soukromý klíč (identifikace) je nyní umístěn v /home/demo/.ssh/id_rsa
Krok 3 – Zkopírujte veřejný klíč
Jakmile je pár klíčů vygenerován, je čas umístit veřejný klíč na virtuální server, který chceme použít.
Veřejný klíč můžete zkopírovat do souboru author_keys nového počítače pomocí příkazu ssh-copy-id. Ujistěte se, že jste nahradili níže uvedené vzorové uživatelské jméno a IP adresu.
ssh-copy-id [email protected]
Případně můžete vložit klíče pomocí SSH:
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Bez ohledu na to, který příkaz jste vybrali, měli byste vidět něco jako:
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established. RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts. [email protected]'s password: Now try logging into the machine, with "ssh '[email protected]'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
Nyní můžete pokračovat a přihlásit se na adresu [email protected] a nebudete vyzváni k zadání hesla. Pokud však nastavíte přístupovou frázi, budete požádáni o zadání přístupové fráze v tu chvíli (a kdykoli jindy se v budoucnu přihlásíte).
Volitelný krok 4 – Deaktivace hesla pro přihlášení uživatele root
Jakmile zkopírujete své klíče SSH na server a zajistíte, že se můžete přihlásit pouze pomocí klíčů SSH , můžete pokračovat a omezit přihlášení uživatele root tak, aby bylo povoleno pouze pomocí klíčů SSH.
Chcete-li to provést, otevřete konfigurační soubor SSH:
sudo nano /etc/ssh/sshd_config
V tomto souboru najděte řádek, který obsahuje PermitRootLogin
a upravit jej tak, aby bylo zajištěno, že se uživatelé mohou připojit pouze pomocí svého klíče SSH:
PermitRootLogin without-password
Uveďte změny v platnost:
service openssh-server restart