Git
Chapters ▾ 2nd Edition

4.3 Git na serveru - Generování veřejného klíče SSH

Generování veřejného klíče SSH

Mnoho gitových serverů provádí ověřování totožnosti pomocí veřejných klíčů SSH. Aby mohl každý uživatel vašeho systému poskytnout veřejný klíč, musí si ho vygenerovat (pokud klíč dosud nemá). Tento proces se napříč operačními systémy téměř neliší. Nejdříve byste se měli ujistit, že ještě žádný klíč nemáte. Uživatel má SSH klíče standardně uloženy ve svém adresáři ~/.ssh. Zda už klíč vlastníte, můžete snadno zkontrolovat tak, že přejdete do uvedeného adresáře a vypíšete si jeho obsah:

$ cd ~/.ssh
$ ls
authorized_keys2  id_dsa       known_hosts
config            id_dsa.pub

Hledejte dvojici souborů — jeden s jménem jako id_dsa nebo id_rsa a k němu stejnojmenný soubor s příponou .pub. Soubor .pub je váš veřejný klíč, druhý soubor je váš soukromý klíč. Pokud tyto soubory nemáte (nebo dokonce vůbec nemáte adresář .ssh), můžete si je vytvořit spuštěním programu ssh-keygen, který je v systémech Linux/Mac součástí balíčku SSH a v systému Windows je součástí instalace Git for Windows:

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/schacon/.ssh/id_rsa):
Created directory '/home/schacon/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/schacon/.ssh/id_rsa.
Your public key has been saved in /home/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local

Program vám nejdříve nechá potvrdit místo uložení klíče (.ssh/id_rsa) a poté se dvakrát zeptá na přístupové heslo. Pokud nechcete při používání klíče zadávat heslo, můžete ho nechat prázdné.

Každý uživatel, který si takto vygeneruje veřejný klíč, ho teď musí poslat vám nebo jinému správci gitového serveru (za předpokladu, že používáte server s SSH přístupem, který veřejné klíče vyžaduje). Stačí přitom zkopírovat obsah souboru .pub a odeslat ho e-mailem. Veřejné klíče mají zhruba tuto podobu:

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local

Podrobnější návod k vytvoření SSH klíče v různých operačních systémech naleznete v příručce GitHub, v části věnované SSH klíčům na stránce https://help.github.com/articles/generating-ssh-keys (anglicky).