Josef Kufner

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

  1. ssh-keygen -t rsa -b 2048 -f ~/.ssh/novy_rsa_klic vygeneruje potřebné klíče.
  2. 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

  1. 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.