Skip to content

SSH-nycklar för authenticering mot GitHub

Så här skapar du ssh-nycklar lokalt i din terminal och lägger till dem i ditt konto på GitHub så att du kan authenticera dig mot GitHub som rätt användare.

Det finns olika sätt att skapa nycklar och det finns olika typer av nycklar som kan skapas. I denna guiden försöker vi skapa nycklarna på enklaste möjliga sätt.

Kör följande kommando för att skapa nycklarna, redigera kommandot och skriv in din egna mailadress. Det spelar ingen roll vilken mailadress du väljer, det är bara för informationssyfte.

Generera ett nyckelpar.
ssh-keygen -t ed25519 -C "your_email@example.com"

När du får en prompt för att ange en lösenordsfras så kan du bara trycka enter.

Det kan se ut så här när du är klar.

Image description
Bild: Nu har du genererat ssh-nycklar.

I utskriften från kommandot ser du i vilka filer som kommandot placerade ditt nyckelpar.

Du kan öppna din publika nyckel i vscode på följande sätt.

Hur du kan öppna den publika nyckeln i vscode.
code ~/.ssh/id_ed25519.pub

Nu blir det enkelt att kopiera innehållet i den filen, det är bara att markera all text i filen.

Här finns fler andra varianter på hur du kan kopiera innehållet i filen.

Visa innehåll med cat och kopiera från terminalen.
Visa filens innehåll med kommandot cat.
cat ~/.ssh/id_ed25519.pub

Nu kan du markera filens innehåll i terminalen och kopiera, vanligtvis via ctrl-c eller shift ctrl c beroende av vilken terminal du har.

Gå till din användare på GitHub (klicka på din bild/avatar) och klicka på “Settings -> SSH and GPG keys”.

Klicka på “New SSH key”. Direktlänken till denna konfiguration är https://github.com/settings/ssh/new.

Det kan se ut så här.

Image description
Bild: Nu är du redo att lägga till en ny ssh-nyckel till GitHub.

Du kan lägga till en titel, det är en godtycklig titel och bara för din egen del så du kan komma ihåg vad just denna nyckeln är till och var den finns.

Därefter kopierar du in din publika nyckel som finns i filen ~/.ssh/id_ed25519.pub.

Det kan se ut så här.

Image description
Bild: Alla fält är ifyllda, nu är det bara att lägga till nyckeln.

Klicka på knappen för att lägga till din nyckel.

Nu är du redo att testa att nyckeln fungerar, du kan göra det via följande kommando.
OBS Du ska inte ange ditt lösenord, då är det något strul med nyckeln. Testa att kopiera in den igen.

Kontroller att du kan koppla dig till GitHub med din ssh-nyckel.
ssh -T git@github.com

Det kan se ut så här när det fungerar.

Image description
Bild: Ett välkomstmeddelande berättar att du kan koppla dig mot GitHub med en ssh-nyckel.

Om du får ett felmeddelande om att din nyckel är för öppen:

Terminal window
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/home/marie/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/marie/.ssh/id_rsa": bad permissions
Permission denied (publickey).

Då fixar du det genom att ändra rättigheter på filen med din privata nyckel. Det ska endast vara du som kan läsa den. Först ställer vi oss i din hemmakatalog, sen kör vi chmod som ändrar rättigheterna och sen kolla vi med ls att det står -rw------- framför din privata nyckel.

Gör så här:

Terminal window
cd
chmod 600 .ssh/id_ed25519
ls -la

Glöm inte att hoppa tillbaka till kurskatalogen igen!

Nu är du redo att jobba mot GitHub via ssh. Om du jobbar på flera datorer så behöver du antingen generera nya nyckelpar för varje maskin, eller så behöver du kopiera den privata nyckeln till varje maskin du vill använda.

För att kunna arbeta med kursens kod och uppgifter på GitHub behöver du aktivera SSH-nyckeln för organisationen bth-python.

  1. Uppe i högra hörnet på vilken sida som helst på GitHub, klicka på din profilbild och välj Settings.
  2. I menyn till vänster, klicka på SSH and GPG keys.
  3. För din SSH nyckel, klicka på “Configure SSO” och välj bth-python i listan över organisationer.
Image description
Bild: Aktivera SSH-nyckeln för organisationen på GitHub.

Nu är du redo att arbeta vidare.