Wat is een Git SSH-sleutel?
Een SSH-sleutel is een toegangscode voor het SSH-netwerkprotocol (secure shell). Dit geverifieerde en versleutelde beveiligde netwerkprotocol wordt gebruikt voor communicatie op afstand tussen machines in een onbeveiligd open netwerk. SSH wordt gebruikt voor bestandsoverdracht op afstand, netwerkbeheer en toegang tot het besturingssysteem op afstand. De afkorting SSH wordt ook gebruikt om een reeks hulpmiddelen te beschrijven die worden gebruikt voor interactie met het SSH-protocol.
SSH gebruikt een paar sleutels om een veilige handdruk te initiëren tussen partijen op afstand. Het sleutelpaar bevat een publieke en een privésleutel. Het gebruik van 'privé' en 'publieke' sleutels kan verwarrend zijn omdat ze allebei 'sleutels' worden genoemd. Het is handiger om de openbare sleutel als een 'slot' te zien en de privésleutel als de 'sleutel'. Je geeft externe partijen het openbare 'slot' om gegevens te versleutelen of te 'vergrendelen'. Deze gegevens worden vervolgens geopend met de 'privésleutel' die je op een veilige plaats bewaart.
Een SSH-sleutel maken
SSH-sleutels worden gegenereerd via een cryptografisch algoritme met openbare sleutels, waarvan de meest voorkomende RSA of DSA is. Op een zeer hoog niveau worden SSH-sleutels gegenereerd met behulp van een wiskundige formule die twee priemgetallen en een willekeurige seed-variabele nodig heeft om de publieke en privésleutel te vormen. Dit is een eenrichtingsformule die ervoor zorgt dat de openbare sleutel kan worden afgeleid van de privésleutel, maar de privésleutel niet van de openbare sleutel.
SSH-sleutels worden aangemaakt met behulp van een hulpprogramma voor het genereren van sleutels. De SSH-opdrachtregelsuite bevat een keygen-tool. De meeste git-hostingproviders bieden handleidingen voor het aanmaken van een SSH-sleutel.
Genereer een SSH-sleutel op Mac en Linux
Zowel de besturingssystemen OSx als Linux beschikken over uitgebreide moderne terminaltoepassingen die worden geleverd met de SSH-suite. Het proces om een SSH-sleutel aan te maken is voor beiden hetzelfde.
1. Voer het volgende uit om te beginnen met het aanmaken van de sleutel
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
gerelateerd materiaal
Git cheat sheet
Oplossing bekijken
Git leren met Bitbucket Cloud
Deze opdracht maakt een nieuwe SSH-sleutel aan met het e-mailadres als label
2. Je ziet dan de volgende melding: 'Voer een bestand in waarin de sleutel moet worden opgeslagen'.
Je kunt een bestandslocatie opgeven of op Enter drukken om de standaardlocatie van het bestand te accepteren.
> Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
3. De volgende prompt zal om een veilig wachtwoord vragen. Een wachtwoord voegt een extra beveiligingslaag toe aan de SSH en is vereist telkens wanneer de SSH-sleutel wordt gebruikt. Als iemand toegang krijgt tot de computer waarop de privésleutels zijn opgeslagen, kan hij of zij ook toegang krijgen tot elk systeem dat die sleutel gebruikt. Door een wachtwoord aan sleutels toe te voegen, wordt dit scenario voorkomen.
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
Er wordt nu een nieuwe SSH-sleutel gegenereerd op het eerder opgegeven bestandspad.
4. Voeg de nieuwe SSH-sleutel toe aan de ssh-agent
De ssh-agent is een ander programma dat deel uitmaakt van de SSH-toolsuite. De ssh-agent is verantwoordelijk voor het bezit van privésleutels. Zie het als een sleutelhanger. Deze bezit niet alleen privésleutels maar bemiddelt ook tussen verzoeken om SSH-verzoeken te ondertekenen met de privésleutels, zodat privésleutels nooit onveilig worden doorgegeven.
Voordat je de nieuwe SSH-sleutel aan de ssh-agent toevoegt, moet je eerst controleren of de ssh-agent actief is. Voer daarvoor het volgende uit:
$ eval "$(ssh-agent -s)"
> Agent pid 59566
Zodra de ssh-agent is gestart, voegt de volgende opdracht de nieuwe SSH-sleutel toe aan de lokale SSH-agent.
ssh-add -K /Users/you/.ssh/id_rsa
De nieuwe SSH-sleutel is nu geregistreerd en klaar voor gebruik!
Genereer een SSH-sleutel in Windows
Windows-omgevingen hebben geen standaard unix-shell. Er moeten externe shell-programma's worden geïnstalleerd om een complete keygen-ervaring te hebben. De eenvoudigste optie is om Git Bash te gebruiken. Zodra Git Bash is geïnstalleerd, kunnen dezelfde stappen voor Linux en Mac worden gevolgd in de Git Bash-shell.
Windows Linux-subsysteem
Moderne Windows-omgevingen bieden een Windows Linux-subsysteem. Het Windows Linux-subsysteem biedt een volledige Linux-shell in een traditionele Windows-omgeving. Als er een Linux-subsysteem beschikbaar is, kunnen dezelfde stappen worden gevolgd die eerder zijn besproken voor Linux en Mac in het Windows Linux-subsysteem.
Samenvatting
SSH-sleutels worden gebruikt om beveiligde verbindingen te verifiëren. Door deze handleiding te volgen, kun je een SSH-sleutel aanmaken en gebruiken. Git kan SSH-sleutels gebruiken in plaats van traditionele wachtwoordauthenticatie wanneer push- en pull-bewerkingen voor externe repository's worden uitgevoerd. Moderne gehoste git-oplossingen, zoals Bitbucket, ondersteunen authenticatie met SSH-sleutels.
Deel dit artikel
Volgend onderwerp
Aanbevolen artikelen
Bookmark deze resources voor meer informatie over soorten DevOps-teams of voor voortdurende updates over DevOps bij Atlassian.