Autentizace v OpenSSH pomocí RSA klíčů
Jako snad každého mě vůbec nebaví vyťukávání hesel. Při připojování se na různé počítače přes ssh jsem byl nucen vyťukávat celkem dlouhá hesla opravdu často a tak jsem hledal nějaké pohodlnější řešení. Tady je:
Postup
Klient
- ssh-keygen -t rsa -b 2048 -f ~/.ssh/novy_rsa_klic vygeneruje potřebné klíče.
- Aby ssh klient věděl, které klíče na který server použít a jaký login
(username) poslat, je nutné vyrobit ~/.ssh/config. Stačí něco jako je
toto:
Host host.domain.tld User username IdentityFile ~/.ssh/novy_rsa_klic
Server
- Aby ssh server poznal, že má klient správný soukromý klíč, je nutné
v ~/.ssh/authorized_keys na serveru mít veřejné klíče klientů. Klíče jsou
uloženy všechny v jednom souboru, co řádek, to jeden klíč. Veřejný klíč byl
uložen do ~/.ssh/novy_rsa_klic.pub.
ssh username@host.domain.tld 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/novy_rsa_klic
Poznámky
Aby toto fungovalo je nutné mít povoleno autorizaci RSA klíči jak na klientovi, tak na serveru (v defaultní konfiguraci je).
Soubor ~/.ssh/config umí parsovat skript na generování menu pro Window Makera jménem ssh-sessions.