SSH keygen: Een perfecte gids voor beginners
SSH (Secure Shell) is een onmisbaar hulpmiddel voor veilige toegang tot een externe server. De op SSH-sleutels gebaseerde authenticatiemethode biedt veel sterkere beveiliging dan het gebruik van wachtwoorden en is essentiële kennis voor elke ontwikkelaar. In dit artikel zal ik het basisconcept van SSH keygen (sleutelgeneratie) tot de praktische gebruiksmethoden uitleggen, op een manier die toegankelijk is voor beginners.
Waarom is SSH keygen nodig?
De traditionele wachtwoordmethode heeft het nadeel dat het risico van blootstelling tijdens het invoeren bestaat en is kwetsbaar voor brute-force aanvallen. SSH-sleutels gebruiken een paar sleutels, een publieke sleutel (Public Key) en een privésleutel (Private Key), om deze problemen op te lossen.
- Privésleutel (Private Key): Deze wordt veilig op de computer van de gebruiker opgeslagen en mag nooit extern worden blootgesteld. Deze sleutel is nodig om toegang tot de server te krijgen.
- Publieke sleutel (Public Key): Dit is de sleutel die op de server waarop je verbinding wilt maken, geregistreerd wordt. Het is geen probleem als deze openbaar is.
Bij SSH-toegang gebruikt de server de publieke sleutel van de gebruiker om de authenticatieverzoek te versleutelen, en als de privésleutel van de gebruiker deze succesvol ontsleutelt, wordt de toegang verleend. Op deze manier is veilige communicatie mogelijk zonder dat wachtwoorden hoeven te worden uitgewisseld.
Hoe genereer je een SSH-sleutel: ssh-keygen
commando
Het meest basale commando voor het genereren van een SSH-sleutel is ssh-keygen
. Open de terminal en voer het volgende commando in.
ssh-keygen
Wanneer je het commando uitvoert, krijg je een aantal vragen. Laten we ze een voor een bekijken.
-
Enter file in which to save the key (/home/youruser/.ssh/id_rsa):
-
Dit is een vraag over het pad waar het te genereren sleuteldocument opgeslagen moet worden. Tenzij er een speciale reden is, is het aan te raden het standaard pad
.ssh/id_rsa
te gebruiken. Druk gewoon opEnter
.
-
-
Enter passphrase (empty for no passphrase):
-
Dit is een vraag of je een wachtwoord voor de privésleutel wilt instellen. Het wordt ten zeerste aanbevolen om een wachtwoord in te stellen voor veiligheidsredenen. Als je een wachtwoord instelt, kan de privésleutel niet worden gebruikt, zelfs als deze uitlekt, zolang het wachtwoord onbekend is, wat zorgt voor een dubbele beveiliging. Houd er rekening mee dat er niets op de terminal verschijnt wanneer je het wachtwoord invoert en druk op
Enter
.
-
-
Enter same passphrase again:
- Bevestig het wachtwoord door het opnieuw in te voeren.
-
Verwachte resultaat:
Your identification has been saved in /home/youruser/.ssh/id_rsa
Your public key has been saved in /home/youruser/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx youruser@yourmachine
The key's randomart image is:
+---[RSA 3072]----+
| .=*o. |
| . +.E+ |
| . o.=. . |
| o . o |
| . S . |
| . . |
| . |
| |
| |
+----[SHA256]-----+
Na het genereren van de sleutel worden er twee bestanden aangemaakt in de ~/.ssh/
directory.
id_rsa
: Privésleutel (Private Key)id_rsa.pub
: Publieke sleutel (Public Key)
RSA vs. Ed25519: Welke methode moet ik kiezen?
Wanneer je een SSH-sleutel genereert, kun je met de ssh-keygen
opdracht de -t
optie gebruiken om de versleutelingsmethode van de sleutel op te geven. De meest gebruikte methoden zijn RSA en Ed25519.
1. RSA-methode (-t rsa
)
- Dit is een methode die vanaf het begin van SSH veel gebruikt wordt.
- Het is bewezen stabiliteit en is compatibel met de meeste systemen.
- Je kunt de sleutelgrootte opgeven, en het is meestal aanbevolen om
4096
bits te gebruiken.- Voorbeeld:
ssh-keygen -t rsa -b 4096
- Voorbeeld:
2. Ed25519-methode (-t ed25519
)
- Dit is een modernere versleutelingsmethode die is gebaseerd op Curve25519 elliptische kromme versleuteling.
- Het biedt evenveel of hogere beveiligingsniveaus met een kortere sleutelgrootte in vergelijking met RSA.
- De snelheid van sleutelgeneratie en authenticatie is snel en gebruikt minder middelen.
- De meeste moderne systemen ondersteunen het, maar het kan incompatibel zijn met zeer oude systemen.
- Voorbeeld:
ssh-keygen -t ed25519
- Voorbeeld:
Aanbevolen methode en redenen
Op dit moment, als er geen speciale compatibiliteitsproblemen zijn, raad ik je ten zeerste aan om de Ed25519-methode te gebruiken.
- Betere beveiliging: Biedt sterke beveiliging met een korte sleutelgrootte wat het minder kwetsbaar maakt voor brute-force aanvallen.
- Snelheid: De processen voor sleutelgeneratie en authenticatie zijn efficiënter.
- Eenvoud: Vergelijkbaar met RSA hoef je je geen zorgen te maken over de sleutelgrootte en kun je deze eenvoudig genereren.
Voorbeeld van Ed25519 sleutelgeneratie
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_my_server -C "my_server_ssh_key"
-t ed25519
: Genereert een sleutel in Ed25519-methode.-f ~/.ssh/id_ed25519_my_server
: Geeft de naam van het sleuteldocument aan alsid_ed25519_my_server
. (Je kunt een andere naam kiezen om het te onderscheiden van de bestaandeid_rsa
.)-C "my_server_ssh_key"
: Voegt een opmerking (Comment) toe aan de sleutel. Het is raadzaam om het een naam te geven zodat je eenvoudig kunt begrijpen voor welk doel de sleutel is gegenereerd.
Verwachte resultaat:
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase): # Voer wachtwoord in (aanbevolen)
Enter same passphrase again: # Bevestig wachtwoord
Your identification has been saved in /home/youruser/.ssh/id_ed25519_my_server
Your public key has been saved in /home/youruser/.ssh/id_ed25519_my_server.pub
The key fingerprint is:
SHA256:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy my_server_ssh_key
The key's randomart image is:
+--[ED25519 256]--+
| .+=+ |
| . oE B |
| o + O |
| . + + |
| o . S |
| . = . |
| . B + |
| . * = o |
|+ o . = . |
+----[SHA256]-----+
Nu heb je een basisbegrip gekregen van hoe je SSH-sleutels genereert en beheert. Wanneer je de gegenereerde publieke sleutel (id_ed25519_my_server.pub
of id_rsa.pub
) aan het ~/.ssh/authorized_keys
bestand van de externe server toevoegt, kun je veilig zonder wachtwoord toegang krijgen. In het volgende artikel zullen we in detail bespreken hoe je de gegenereerde SSH-sleutel op de server registreert en gebruikt.
Als je vragen hebt, aarzel dan niet om ze in de reacties te stellen!
댓글이 없습니다.