Git SSH-key instellen¶
Nu je Git geïnstalleerd hebt op je computer en je naam en emailadres ingesteld hebt, gaan we een veilige manier vinden om te communiceren met onze GitLab-omgeving. Als je op het internet kijkt vind je verschillende manieren, bij HBO-ICT gebruiken we altijd de SSH-key methode.
Wat is een SSH-key?¶
Een SSH-key is een veilige manier om jezelf te identificeren bij GitLab zonder elke keer je wachtwoord in te hoeven typen. Je kan het vergelijken met een digitale sleutel die bestaat uit twee delen:
- Private key (privésleutel): Dit deel blijft op jouw computer en mag je nooit met anderen delen. Dit is als de sleutel van je huis - je deelt deze niet met anderen.
- Public key (publieke sleutel): Dit deel deel je met GitLab. Dit is als het slot van je huis - anderen kunnen het zien, maar zonder de privésleutel kunnen ze er niets mee.
Wanneer je code naar GitLab pusht of er vanaf haalt, gebruikt Git deze sleutels om te verifiëren dat jij het bent, zonder dat je je wachtwoord hoeft in te voeren.
SSH-key genereren¶
Om een SSH-key te maken moet je een aantal commando’s uitvoeren in een commando-venster. Afhankelijk van je besturingssysteem gebruik je een ander programma:
- Windows: Open Git Bash (niet PowerShell of Command Prompt)
- Mac/Linux: Open Terminal
Stap 1: Controleer of je al een SSH-key hebt¶
Voordat je een nieuwe SSH-key maakt, is het handig om te controleren of je er al een hebt:
Als je bestanden ziet zoals id_rsa en id_rsa.pub (of id_ed25519 en id_ed25519.pub), dan heb je al een SSH-key. Je kan deze gebruiken of een nieuwe maken.
Stap 2: Genereer een nieuwe SSH-key¶
Voer het volgende commando uit. Vervang jouw.hva.email@hva.nl met jouw HvA-emailadres:
Ed25519 vs RSA
We gebruiken ed25519 omdat dit een modernere en veiligere methode is. Als je systeem dit niet ondersteunt, kan je -t rsa -b 4096 gebruiken in plaats van -t ed25519.
Je wordt nu gevraagd waar je de key wilt opslaan. Druk gewoon op Enter om de standaardlocatie te gebruiken.
Vervolgens wordt je gevraagd om een wachtwoordzin (passphrase) in te stellen. Dit is optioneel voor extra beveiliging. Als je een wachtwoordzin instelt, moet je deze elke keer invoeren wanneer je de SSH-key gebruikt. Je kan ook gewoon op Enter drukken om geen wachtwoordzin in te stellen.
Omdat je de SSH-key op een standaard locatie opslaat, kan je deze direct gebruiken als je git-commando’s uitvoert.
SSH-key toevoegen aan GitLab¶
Nu je een SSH-key hebt gegenereerd, moet je de publieke sleutel toevoegen aan je GitLab-account.
Stap 1: Kopieer je publieke SSH-key¶
Je moet de inhoud van je publieke sleutel kopiëren. Dit is het bestand met de extensie .pub.
Voor ed25519 keys:
Voor RSA keys:
Het commando toont nu de inhoud van je publieke sleutel. Dit ziet er ongeveer zo uit:
Kopieer de volledige tekst (van ssh-ed25519 tot en met je emailadres).
Kopiëren in Git Bash
In Git Bash kan je de tekst selecteren en met de rechtermuisknop kopiëren, of gebruik Ctrl+Insert om te kopiëren.
Stap 2: Voeg de key toe in GitLab¶
We gaan nu de publieke sleutel toevoegen aan je GitLab-account, zodat je GitLab-omgeving weet dat je deze key mag gebruiken.
- Log in op je GitLab-account (via de HvA GitLab-omgeving).
- Klik rechtsboven op je profielfoto en kies Preferences.
- In het linkermenu klik je op SSH Keys.
- Klik op de knop Add SSH key.
- Plak de gekopieerde publieke sleutel in het tekstvak onder Key.
- Geef de key een beschrijvende naam in het veld Title (bijvoorbeeld “Mijn laptop” of “Windows computer”).
- Om te voorkomen dat je elk jaar een nieuwe key moet toevoegen zet je de optie Expiration date op oneindig.
- Klik op Add key.
Stap 3: Test de verbinding¶
Als je alle bovenstaande stappen hebt uitgevoerd, kan je de verbinding testen. Dit kan je doen door een Gitlab project repository te clonen of door onderstaand commando uit te voeren:
De eerste keer dat je verbinding maakt, wordt je gevraagd of je de “authenticity of host” wilt accepteren. Type yes en druk op Enter.
Als alles goed is gegaan, zie je een bericht zoals:
Je SSH-key is nu succesvol ingesteld en gekoppeld aan je GitLab-account!
Problemen oplossen¶
“Permission denied (publickey)” foutmelding¶
Als je deze foutmelding krijgt, controleer dan:
- Of je de publieke sleutel correct hebt gekopieerd (zonder extra spaties of regels).
- Of je de juiste GitLab-omgeving gebruikt (gitlab.fdmci.hva.nl!!!).
- Of je SSH-agent de key heeft geladen omdat je sleutel op een andere locatie staat dan de standaard locatie:
ssh-add -l