Autentizace SSH klíčem snadno a rychle

20.07.2007

Na této stránce jsem se pokusil spáchat přímočarý postup, jak rozjet přihlašování k serveru pomocí SSH bez zbytečných zádrhelů.

Server: Funkční SSH s autentizací heslem (login a heslo). Testováno na Debian Etch.
Klient: MS Windows a oblíbený putty.

1) Úprava konfiguračního souboru sshd démona

V konfiguračním souboru sshd démona /etc/ssh/sshd_config je nutné upravit následujících 5 řádků. V případě Debian Etch bylo nutné změnit pouze 2 (červeně označené). Tuto akci je nutné provést jako root.

RSAAuthentication yes 
PubkeyAuthentication yes 
AuthorizedKeysFile .ssh/authorized_keys
RhostsRSAAuthentication yes
HostbasedAuthentication yes

Následuje restart /etc/init.d/ssh restart.

2) Vytvoření privátního a veřejného klíče

Oba klíče vytvoříme na vzdáleném stroji pomocí programu ssh-keygen.

uzivatel@starhill:/home/uzivatel$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/uzivatel/.ssh/id_rsa):
Created directory '/home/uzivatel/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/uzivatel/.ssh/id_rsa.
Your public key has been saved in /home/uzivatel/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx uzivatel@starhill.org

Na všechny dotazy stačí odpovědět Enterem. Pokud vás zajímá, co je to "passphrase", tak doporučuji nahléhnout do manuálu. Jedná se o ochranu privátního klíče heslem, ale v tuto chvili by to postup zbytečně zkomplikovalo.

Výstupem jsou 2 soubory:

id_rsa soukromý klíč
id_rsa.pub veřejný klíč

3) Veřejný klíč

Obsah souboru s veřejným klíčem je nutné zkopírovat do souboru /home/walda/.ssh/authorized_keys a to například takto:

cat /home/uzivatel/.ssh/id_rsa.pub > /home/uzivatel/.ssh/authorized_keys

4) Soukromý klíč

Soukromý klíč nějakou bezpečnou cestou přeneseme do klientského PC s OS Windows - tam odkud se chceme připojovat pomocí programu putty. Zde je však zádrhel v tom, že putty nerozumí formátu soukromého klíče, který vygeneroval program ssh-genkey. Řešení je však pomerně prosté a spočívá ve využití programu puttygen (ke stažení na domovské stránce s putty). Tento program umožuje konvertovat formát soukromého klíče tak, aby ho putty vzal.

Po spuštění puttygen stačí zvolit Conversions, následně Import, vybrat soubor se soukromým klíčem a po načtení kliknout na tlačítko Save private key. Takto uložený soukromý klíč je v putty-like formátu.

5) Putty

V putty se takto upravený klíč zvolí v Connection, SSH, Auth. Pokud vše dobře dopadlo, stačí při přihlašování vyplnit login a jste tam.