Vertalingen: "English" |

Use SSH-keys for GIT authentication

Delen op:

Git Authenticatie met SSH keys voor Meerdere Repositories

Werk je met verschillende Git repositories verspreid over Azure DevOps en GitHub? Dan heb ik een super handige tip voor je! Laten we afscheid nemen van wachtwoord-gedoe en overschakelen naar SSH keys.

  • Waarom SSH Keys? SSH keys maken het leven zoveel makkelijker. Geen gedoe meer met het onthouden van wachtwoorden of verlopen tokens. Eenmalig instellen en je bent klaar!

  • Het probleem: Bij meerdere Github accounts of DevOps organisaties moet je de juiste keys aan het juiste account koppelen.

1. SSH Keys Aanmaken

Voordat we kunnen beginnen, moeten we eerst een SSH-key paar aanmaken. Beide onderstaande commando's zullen om een wachtwoord vragen - die slaan we voor nu over. Het resultaat zijn twee bestanden, één met een .pub extensie - die hebben we zo nodig. Het bestand zonder de .pub extensie (helemaal geen extensie) is je private key. Behandel deze als een wachtwoord en deel deze nooit met iemand. Dit bestand blijft op jouw systeem!

Voor GitHub

1ssh-keygen -t ed25519 -C "jouw@email.com"

Voor Azure DevOps (omdat zij alleen RSA ondersteunen)

1ssh-keygen -t rsa -b 4096 -C "jouw@email.com"
2Bij de laatste prompt wordt gevraagd naar de bestandslocatie en naam. Om de naam aan te passen, moet je het volledige voorgestelde pad inclusief je gewenste naam invoeren:
3bas@Intel80286:~$ ssh-keygen -t rsa -b 4096 -C "jouw@email.com"
4Generating public/private rsa key pair.
5Enter file in which to save the key (/home/bas/.ssh/id_rsa): /home/bas/.ssh/demo

2. SSH Config File

Het geheime ingrediënt is je SSH config bestand. Hiermee kun je een specifieke key aan elke Organisatie/account koppelen. Dit config bestand (dat is de daadwerkelijke naam) staat in je .ssh map die zich meestal in je home folder bevindt en ziet er zo uit:

config

 1#config bestand (.ssh/)
 2Host azdoipm
 3  HostName ssh.dev.azure.com
 4  PreferredAuthentications publickey
 5  IdentityFile ~/.ssh/azdoipm
 6Host github
 7  HostName github.com
 8  PreferredAuthentications publickey
 9  IdentityFile ~/.ssh/github
10Host layer8solutions
11  HostName ssh.dev.azure.com
12  PreferredAuthentications publickey
13  IdentityFile ~/.ssh/layer8solutions
14Je ziet hier drie items: 'azdoipm' die ik gebruik voor Azure DevOps, 'github' voor GitHub, en 'layer8solutions' voor een andere DevOps organisatie die een eigen key nodig heeft.
KeyValue
HostVriendelijke en unieke naam die je gebruikt om een repo aan een specifiek account te koppelen
HostNamehostnaam van de origin (ssh.dev.azure.com of github.com)
PreferredAuthenticationspublickey
IdentityFilerelatief pad naar je private key opgeslagen in .ssh map

3. Je Public Key Toevoegen aan GitHub of Azure DevOps

Eerst moeten we de output van je public key krijgen. We gebruiken het cat commando en kopiëren de output:

1bas@INS-51996513957:~$ cat ~/.ssh/demo.pub
2ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDa9+WmRW/wP7CubJC82o0lbA2qqWSVw5wPz86jSiLj3QteYu+K8Cvp931naoK++NIIpzAJeNqvco3XPUFmaNFyRHVR8M0U3HVB2bsTHlbZsKGxvum4O4PAywfgjhsT2rudAOSLaciUJ0XSqiQImVSJdflyX3igZpq6lqpTepP58BactxP0pbLelQfw0EeYFXXXXXXXXNOTVALIDXXXXXXXXXXXXXXRVXRNWYBxWrUWR6ozWwwXw0xqhZjCs31B/RqIq4r2x2ejaQwap9iaVGCc0PtPv7ZAKn79dlQVJajhdRlLOr570uAZTsGeRe8Cyl25HhT4lhw4n3EeYFXXXXXXXXNOTVALIDXXXXXXXXXXXXXXRYlImBKjfNZuwLwzXyziC4cY4Y7tZoNFb96/3CJmWQNjdNq3v/lTitgKqM3I9edSn7vJUZTlPyTcD1ocsvZYvYijkapEI2Z9yy3Gn0siPkMbCnnILQt3kYic8azeyyPRQXDRFfRMss1ABeRD2Ipfn2+fp7W5Xf2LlmdQteGiuIEeYFXXXXXXXXNOTVALIDXXXXXXXXXXXXXXRrOmzQ6zJzh230ZfD/4Ya41FH5OtfmdVjlwcYy7AOosZZ9UMhlWifWosiWIfd5zLuibD2WSu3+ydCny8lJ7d+DnQzvkFxw== your@email.com

In Azure DevOps

Ga naar Gebruikersinstellingen -> SSH Public Keys -> Nieuwe Key Geef je key een naam (ik gebruik de hostname van het systeem waar de key is opgeslagen) Plak je public key (de output van je cat commando)

Add key to Azure Devops

Add key to Azure Devops

In GitHub

Ga naar Gebruikersinstellingen -> SSH Public Keys -> Nieuwe Key Geef je key een naam (ik gebruik de hostname van het systeem waar de key is opgeslagen) Plak je public key (de output van je cat commando)

Add key to Azure Devops

Add key to Azure Devops

4. Repositories Clonen

Bij het clonen van een repo, verwissel je gewoon de hostname in de URL: Voor GitHub: vervang "github.com" met je config hostname Voor Azure DevOps: vervang "ssh.dev.azure.com" met je config hostname


Reacties

comments powered by Disqus (not working in Firefox)