Secure Shell (SSH) je šifrovací síťový protokol používaný pro bezpečné spojení mezi klientem a serverem a podporuje různé ověřovací mechanismy.
Dva nejoblíbenější mechanismy jsou autentizace na základě hesla a veřejného klíče. Používání klíčů SSH je bezpečnější a pohodlnější než tradiční ověřování heslem.
V tomto tutoriálu popíšeme, jak generovat klíče SSH na systémech Debian 9. Ukážeme vám také, jak nastavit ověřování založené na klíči SSH a připojit se ke vzdáleným serverům Linux bez zadání hesla.
Vytváření klíčů SSH v Debianu #
Před vygenerováním nového páru klíčů SSH nejprve zkontrolujte stávající klíče SSH na vašem klientském počítači Debian. Můžete to provést spuštěním následujícího příkazu ls:
ls -l ~/.ssh/id_*.pub
Pokud výstup výše uvedeného příkazu obsahuje něco jako No such file or directory
nebo no matches found
znamená to, že nemáte klíče SSH a můžete pokračovat dalším krokem a vygenerovat nový pár klíčů SSH.
Pokud existují klíče, můžete je buď použít a přeskočit další krok, nebo zálohovat staré klíče a vygenerovat nové.
Začněte vygenerováním nového 4096bitového páru klíčů SSH s vaší e-mailovou adresou jako komentář pomocí následujícího příkazu:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Výstup bude vypadat podobně jako následující:
Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):
Stiskněte Enter
přijmout výchozí umístění souboru a název souboru.
Dále budete vyzváni k zadání bezpečné přístupové fráze. Jestli chcete použít přístupovou frázi, je to na vás. Pomocí přístupové fráze je k vašemu klíči přidána další vrstva zabezpečení.
Enter passphrase (empty for no passphrase):
Pokud nechcete použít přístupovou frázi, stiskněte Enter
.
Celá interakce vypadá takto:
Chcete-li ověřit, že byl vygenerován pár klíčů SSH, zadejte:
ls ~/.ssh/id_*
Výstup by měl vypadat nějak takto:
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub
Zkopírujte veřejný klíč na server #
Nyní, když máte svůj pár klíčů SSH, dalším krokem je zkopírovat veřejný klíč na server, který chcete spravovat.
Nejjednodušší a doporučený způsob, jak zkopírovat veřejný klíč na vzdálený server, je použít ssh-copy-id
nástroj.
Na terminálu místního počítače spusťte následující příkaz:
ssh-copy-id remote_username@server_ip_address
Budete vyzváni k zadání remote_username
heslo:
remote_username@server_ip_address's password:
Jakmile je uživatel ověřen, veřejný klíč ~/.ssh/id_rsa.pub
bude připojen ke vzdálenému uživateli ~/.ssh/authorized_keys
soubor a připojení bude uzavřeno.
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'username@server_ip_address'"
and check to make sure that only the key(s) you wanted were added.
Pokud ssh-copy-id
není na vašem místním počítači dostupný, můžete použít následující příkaz ke zkopírování veřejného klíče:
cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Přihlaste se k serveru pomocí klíčů SSH #
V tomto okamžiku byste měli být schopni se přihlásit ke vzdálenému serveru, aniž byste byli vyzváni k zadání hesla.
Chcete-li to otestovat, zkuste se připojit k serveru přes SSH:
ssh remote_username@server_ip_address
Pokud jste nenastavili přístupové heslo, budete okamžitě přihlášeni. V opačném případě budete vyzváni k zadání přístupové fráze.
Deaktivace ověřování hesla SSH #
Chcete-li svému serveru přidat další vrstvu zabezpečení, můžete deaktivovat ověřování heslem pro SSH.
Před deaktivací ověřování heslem SSH se ujistěte, že se můžete přihlásit na svůj server bez hesla a že uživatel, se kterým se přihlašujete, má oprávnění sudo.
Přihlaste se ke vzdálenému serveru:
ssh sudo_user@server_ip_address
Otevřete konfigurační soubor SSH /etc/ssh/sshd_config
:
sudo vim /etc/ssh/sshd_config
Vyhledejte následující direktivy a upravte je následovně:
/etc/ssh/sshd_configPasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
Jakmile budete hotovi, uložte soubor a restartujte službu SSH pomocí následujícího příkazu:
sudo systemctl restart ssh
V tomto okamžiku je ověřování na základě hesla zakázáno.