Git
Chapters ▾ 2nd Edition

4.3 Гит на серверу - Генерисање јавног SSH кључа

Генерисање јавног SSH кључа

Многи Гит сервери обављају аутентификацију користећи јавне SSH кључеве. Да би вам доставили своје јавне кључеве, сваки корисник у вашем систему ће морати да генерише један ако га већ немају. Овај процес је сличан у свим оперативним системима. Прво, треба да проверите да ли већ имате кључ. Корисникови SSH кључеви се подразумевано чувају у ~/.ssh директоријуму тог корисника. Лако можете проверити да ли већ имате кључ тако што ћете отићи до тог директоријума и излистати његов садржај.

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

Тражите пар фајлова који се зову нешто као id_dsa или id_rsa и одговарајући фајл са екстензијом .pub. Фајл .пуб је ваш јавни кључ, а други фајл је приватни. Ако немате ове фајлове (или чак немате ни .ssh директоријум), можете да их креирате покретањем програма који се зове ssh-keygen, који се испоручује уз SSH пакет на Линукс и Мек системима, а за Виндоуз долази уз Гит.

$ ssh-keygen -o
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

Прво потврђује где желите да сачувате кључ (.ssh/id_rsa), а онда вас двапут пита за лозинку, коју треба да оставите празну ако не желите да уносите лозинку када користите кључ. Међутим, ако хоћете да употребите лозинку, обавезно наведите опцију -o; он чува приватни кључ у формату који је отпорнији на проваљивање шифре грубом силом у односу на подразумевани формат. Такође можете да користите и ssh-agent алат са којим нема потребе да сваки пут уносите шифру.

Дакле, сваки корисник треба да уради ово и да пошаље свој јавни кључ вама или некој особи која је задужена за администрацију Гит сервера (под претпоставком да користите поставку са SSH сервером који захтева јавне кључеве). Потребно је само да копирају садржај .pub фајла и да га пошаљу мејлом. Јавни кључ изгледа отприлике овако:

$ 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

За детаљнији туторијал о креирању SSH кључева на разним оперативним системима, погледајте GitHub водич за SSH кључеве на https://docs.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.