May 07 2009
SSH autentizace pomocí klíčů bez hesla
Tento článek v rychlosti popisuje SSH autentizaci mezi jednotlivými stroji pomocí dvojice soukromý/veřejný klíč. Nejedná se o nic nového ani převratného, akorát to vždycky zapomenu a tak si to raději napíšu sem, ať vím, kde hledat příště.
Scénář
Dva stroje, jeden franta (192.168.1.1) a druhý hubert (192.168.1.3) a chci se mezi nimi připojovat jednoduše tak, že nepotřebuji žádné heslo — tedy stačí zadat pouze franta:~# ssh hubert
a jsem tam (klíče kopíruji pouze pro uživatele root na obou strojích). Stejně tak se chci připojit z huberta na frantu. Žádná parafráze, žádné heslo.
Předpoklad
Nainstalovaný SSH server na obou strojích:
# apt-get install ssh
a v souboru /etc/ssh/sshd_config
povolenu autentizaci pomocí klíčů (je to defautlní nastavení Debianu):
RSAAuthentication yes PubkeyAuthentication yes
Postup
- Vytvoření dvojice klíčů na obou strojích, nejdříve hubert (na pořadí nezáleží):
hubert:~# ssh-keygen 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: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@hubert The key's randomart image is: ...
a franta to samé, na všechny otázky stačí stisknout <enter> -
Přenesení veřejných klíčů jednotlivých strojů na jejich protějšky:
Klíč z huberta na frantu:hubert:~# scp .ssh/id_rsa.pub root@franta:~/hubert_rsa.pub root@franta's password: id_rsa.pub 100% 393 0.4KB/s 00:00
a klíč z franty na huberta to samé:franta:~# scp .ssh/id_rsa.pub root@hubert:~/franta_rsa.pub root@hubert's password: id_rsa.pub 100% 393 0.4KB/s 00:00
Při tomto přesunu budete naposledy potřebovat autentizaci pomocí hesla. - Zapsání veřejného klíče huberta do autentizačního souboru franty a naopak:
franta:~# cat hubert_rsa.pub >> .ssh/authorized_keys
hubert:~# cat franta_rsa.pub >> .ssh/authorized_keys
Závěr
V tuto chvíli by již autentizace měla vzájemně fungovat, takže stačí jen vyzkoušet:
franta:~# ssh hubert
Linux hubert 2.6.26-2-amd64 #1 SMP Fri Mar 27 04:02:59 UTC 2009 x86_64
...
hubert:~#
Stejně tak, jako přihlašování přes SSH bude fungovat bez hesla i kopírování přes SCP.
Komentáře nejsou povoleny