SSH Nyckel och dess användning i Git

Vad är SSH & en SSH-nyckel?

SSH är ett protokoll som används för att ansluta sig säkert mot andra datorer över Internet eller på ett lokalt nätverk. Det går att autentisera sig med hjälp av användarnamn och lösenord men det är betydligt säkrare att använda s.k. SSH-nycklar. Det är till exempel väldigt vanligt att använda SSH för att administrera Linux maskiner men kan användas för att autentisera en användare en hel drös av olika system på internet.

SSH-nyckelpar

Det finns två delar till en SSH-nyckel en publik del och en privat del. Den publika delen heter som standard id_rsa.pub och den privata delen saknar .pub

Du ska aldrig dela med dig av den privata delen av din SSH-nyckel eftersom det är den delen av nyckeln som autentiserar att det verkligen är du som ansluter. Du kan identifiera den publika delen av din nycken som du kan dela med dig av för den har .pub i slutet. 

Med den här SSH-nyckeln kan du ansluta till andra datorer - där din SSH-nyckel finns sparad - utan att behöva ange ett lösenord. Det innebär också att du kan använda GitLabs (eller GitHub) commits utan att behöva specificera användare och ytterligare autentisering varje gång du ska pusha något till ditt repository.

Skapa SSH-nyckelpar i Windows!

  1. Öppna Powershell.

  2. Skriv in ssh-keygen och tryck på enter.

  3. Följ sedan instruktionerna tills du ser bilden nedan.

image-1620048931052.png

Nu finns nyckeln i .ssh i din användarmapp. (C:\Users\ELEV-TAG\.ssh) i filen id_rs.pub

Skapa en SSH-nyckel i Linux!

Det finns en mer detaljerad guide här som man kan följa, men den är på engelska.

Steg 1 - Skapa ett SSH-nyckelpar på den klienten du ska använda

I terminalen på Linux (eller ekvivalent WSL på Windows) skriver du in:

$ ssh-keygen -t rsa

Följ sedan instruktionerna som ges. 

Du behöver inte ange en passphrase såvida du inte vill ha ett extra lager av säkerhet ifall någon skulle komma över din privata SSH-nyckel. Men då skulle du behöva ange din passphrase varje gång du vill koppla dig via SSH med din nyckel.

När du har gått igenom processen kommer du i din hemkatalog ~/.ssh återfinna två filer (eller flera om du har flera nycklar) en id_rsa.pub och en id_rsa (eller vilket namn du nu valt). Det är innehållet i id_rsa.pub som du ska använda ifall du vill autentisera dig emot GitLab. 

Använd SSH-nyckeln i Git

  1. Gå in på git.ssis.nu och logga in. (Använd ditt Google-konton, elev@stockholmscience.se)

  2. Klicka på “Edit profile”

  3. Klicka på “SSH Keys”

  4. Kopiera allt i filen id_rsa.pub som vi hittar i .ssh i din användarmapp. C:\Users\ELEV-TAG\.ssh

  5. Klicka sedan på “Add key".

  6. Klistra in nyckeln i rutan och klicka på spara.

Nu har din nya nyckel registrerats på skolans GitLab och nu kan du klona och skicka upp commits till dina repositories via SSH.