Pomocí příkazu ssh-keygen vygenerujte pár veřejného/soukromého ověřovacího klíče. Autentizační klíče umožňují uživateli připojit se ke vzdálenému systému bez zadání hesla. Klíče musí být generovány pro každého uživatele zvlášť. Pokud generujete páry klíčů jako uživatel root, může klíče používat pouze root.
Následující příklad vytváří veřejné a soukromé části klíče RSA:
# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:z6zTVQ/PJYt2o96DrVYClmfcqBG8Pdb8nzqY2m2HjeY root@geeklab The key's randomart image is: +---[RSA 2048]----+ | . | | o | | * = | | * O B .| | S. B + O.| | +. = = =| | .+ooB+.o| | ..oo=Bo+.| | .o.+*E=. | +----[SHA256]-----+
Pomocí volby –t zadejte typ klíče, který chcete vytvořit. Možné hodnoty jsou „rsa1 “ pro protokol verze 1 a „dsa “, „ecdsa “ nebo „rsa ” pro protokol verze 2.
Máte možnost zadat přístupovou frázi pro zašifrování soukromé části klíče. Pokud zašifrujete svůj osobní klíč, musíte zadat přístupovou frázi pokaždé, když klíč použijete. To zabrání útočníkovi, který má přístup k vašemu soukromému klíči a může se za vás vydávat a získat přístup ke všem počítačům, ke kterým máte přístup, aby to mohl udělat. Útočník stále potřebuje zadat přístupovou frázi.
Příkaz ssh-key v příkladu vygeneroval dva klíče v adresáři ~/.ssh:
$ ls ~/.ssh id_rsa id_rsa.pub
Chcete-li se přihlásit nebo kopírovat soubory do vzdáleného systému bez zadání hesla, zkopírujte veřejný klíč (v tomto příkladu ~/.ssh/id_rsa.pub) do ~/.ssh/authorized_keys na vzdáleném systému. Nastavte vzdálené ~/.ssh oprávnění k adresáři 700 . Poté můžete použít nástroje ssh nebo scp pro přístup ke vzdálenému systému bez zadání hesla.
Chcete-li povolit více připojení, připojte veřejný klíč k souboru author_keys ve vzdáleném systému namísto jeho kopírování. Následující příklad připojuje veřejný klíč:
$ cat id_rsa.pub >> authorized_keys
Zabezpečení systému můžete ještě dále zlepšit vypnutím standardního ověřování heslem a vynucením ověřování na základě klíče. Chcete-li to provést, nastavte možnost PasswordAuthentication na hodnotu no v souboru /etc/ssh/sshd_config konfigurační soubor takto:
# vi /etc/ssh/sshd_config PasswordAuthentication no
To zakáže uživatelům, jejichž klíče nejsou v authorized_keys soubor konkrétního uživatele na serveru pro připojení přes ssh. Připojení je odepřeno a zobrazí se následující zpráva:
$ ssh host01 Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Nastavení možnosti PasswordAuthentication na yes, což je výchozí nastavení, umožňuje uživateli používat k ověření heslo.