Chapters ▾ 2nd Edition

4.3 Git på servern - Generera din publika SSH-nyckel

Generera din publika SSH-nyckel

Många Git-servrar autentiserar med publika SSH-nycklar. För att tillhandahålla en publik nyckel måste varje användare i systemet skapa en om de inte redan har en. Processen är i stort sett densamma på alla operativsystem. Börja med att kontrollera att du inte redan har en nyckel. Som standard ligger en användares SSH-nycklar i ~/.ssh. Du kan enkelt kontrollera det genom att gå till katalogen och lista innehållet:

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

Du letar efter ett filpar som heter något i stil med id_dsa eller id_rsa och en matchande .pub-fil. .pub-filen är din publika nyckel och den andra är den privata nyckeln. Om du inte har dessa filer (eller ens en .ssh-katalog) kan du skapa dem med programmet ssh-keygen, som ingår i SSH-paketet på Linux/macOS och följer med Git for Windows:

$ 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

Först bekräftar den var du vill spara nyckeln (.ssh/id_rsa) och sedan frågar den två gånger efter en lösenfras, som du kan lämna tom om du inte vill skriva in den varje gång. Om du väljer att använda en lösenfras ska du se till att använda flaggan -o; den sparar den privata nyckeln i ett format som är mer motståndskraftigt mot råstyrkeknäckning än standardformatet. Du kan också använda verktyget ssh-agent för att slippa skriva in lösenfrasen varje gång.

Varje användare som gör detta måste skicka sin publika nyckel till dig eller till den som administrerar Git-servern (om ni använder SSH-konfiguration med publika nycklar). Det enda de behöver göra är att kopiera innehållet i .pub-filen och skicka det via e-post. Publika nycklar ser ut ungefär så här:

$ 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

För en mer utförlig handledning om hur man skapar en SSH-nyckel på flera operativsystem, se GitHubs guide på https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.