SSH přihlášení bez hesla pomocí klíče (revidováno)
- OD KLIENTA – Generovat klíč:
ssh-keygen -t rsa
Veřejný a soukromý klíč (id_rsa.pub
aid_rsa
) se automaticky uloží do~/.ssh/
adresář.
Nastavení bude jednodušší, pokud použijete prázdnou přístupovou frázi. Pokud to nechcete udělat, postupujte podle tohoto průvodce, ale také zkontrolujte bod pod odrážkou níže. - OD KLIENTA – Zkopírujte veřejný klíč do server:
ssh-copy-id user@server
Veřejný klíč klienta bude zkopírován do místění server~/.ssh/authorized_keys
. - OD KLIENTA – Připojení k serveru:
ssh user@server
Pokud nyní po popsaných 3 krocích nefunguje, zkuste následující:
- Zkontrolujte
~/ssh
oprávnění ke složce v počítači klient a server. - Zkontrolujte
/etc/ssh/sshd_config
v server, aby bylo zajištěno, že možnostiRSAAuthentication
,PubkeyAuthentication
aUsePAM
nejsou zakázány, mohou být ve výchozím nastavení povoleny pomocíyes
. - Pokud jste při generování klíče klienta zadali přístupové heslo, můžete zkusit
ssh-agent
&ssh-add
k dosažení připojení bez hesla ve vaší relaci. - Zkontrolujte obsah
/var/log/auth.log
na serveru server najdete problém, proč je ověřování klíčů vůbec vynecháno.
Dodatek pro administrátory
Pokud chcete uživatelům dovolit přihlašování pomocí klíčů, musíte mít zapnutou příslušnou volbu v konfiguraci. Je pravděpodobné, že už bude zapnutá od instalace (není důvod ji vypínat), ale přesto je dobré v případě problémů ověřit, že je vše v pořádku. Volbu naleznete v souboru /etc/ssh/sshd_config
:
PubkeyAuthentication yes
Pokud je volba na yes
, je tato možnost povolena a vše bude fungovat. Pokud své uživatele chcete donutit používat právě tuto bezpečnou formu autorizace, můžete jim heslo úplně zakázat. To provedete ve stejném konfiguračním souboru změnou následujících voleb:
ChallengeResponseAuthentication no PasswordAuthentication no UsePAM no
Tímto postupem jednak zajistíte bezpečnější přihlašování uživatelů, ale také zamezíte zlým hochům, aby zkoušeli hádat heslo a „loupat perníček“. V každém případě nezapomeňte po jakékoliv změně restartovat SSH server:
service sshd restart