Wat is een SSH-sleutelpaar?

Een SSH-sleutelpaar is een set van twee cryptografische sleutels die worden gebruikt om een gebruiker bij een externe server te authenticeren zonder wachtwoord. Het paar bestaat uit een privésleutel, die geheim wordt gehouden op de machine van de gebruiker, en een openbare sleutel, die op de externe server wordt geplaatst. Bij het verbinden stelt de server de client in staat om het bezit van de privésleutel te bewijzen — zonder de privésleutel ooit te verzenden. Deze asymmetrische benadering is aanzienlijk veiliger dan verificatie op basis van wachtwoorden, omdat er geen gedeeld geheim is dat kan worden onderschept of brute-force aangevallen.

SSH-sleutelparen worden gegenereerd met behulp van algoritmen voor openbare-sleutelcryptografie. De meest gebruikte zijn Ed25519, een modern elliptische-curve-algoritme dat bekend staat om zijn kleine sleutelgrootte en hoge veiligheid, en RSA, een beproefd algoritme dat berust op de moeilijkheid van het ontbinden van grote gehele getallen. Ed25519 wordt aanbevolen voor nieuwe sleutels vanwege de superieure prestaties en weerstand tegen side-channel-aanvallen.

Hulpprogrammabeschrijving

De SSH Key Pair Generator maakt cryptografisch veilige Ed25519- of RSA SSH-sleutelparen rechtstreeks in uw browser met behulp van de Web Crypto API. Er worden geen gegevens naar een server verzonden — alle sleutelmateriaal wordt lokaal op uw apparaat gegenereerd. U kunt optioneel een opmerking toevoegen (meestal user@hostname) om de sleutel later te identificeren. De gegenereerde openbare en privésleutels kunnen naar het klembord worden gekopieerd of als bestanden worden gedownload, klaar voor gebruik met ssh-copy-id of elke SSH-client.

Voorbeelden

Ed25519 openbare sleutel

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@hostname

RSA openbare sleutel (4096-bits)

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC2... user@hostname

Privésleutel (OpenSSH-indeling)

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAAB...
-----END OPENSSH PRIVATE KEY-----

Functies

  • Ed25519 en RSA-ondersteuning: Kies tussen een modern elliptische-curve-algoritme of het klassieke RSA-algoritme
  • RSA-sleutelgrootteopties: Selecteer 2048, 3072 of 4096-bits RSA-sleutels om veiligheid en prestaties in evenwicht te brengen
  • Optioneel opmerkingsveld: Voeg een opmerking in de stijl van user@hostname toe om de sleutel op verschillende machines te identificeren
  • Generatie aan clientzijde: Sleutels worden volledig in uw browser gegenereerd met behulp van de Web Crypto API — niets wordt verzonden of opgeslagen
  • Download met één klik: Sla de openbare en privésleutelbestanden rechtstreeks op met de juiste bestandsnamen (id_ed25519, id_ed25519.pub, id_rsa, id_rsa.pub)

Gebruiksscenario's

  • Servertoegangsinstellingen: Genereer eenmaal een sleutelpaar en implementeer de openbare sleutel op een willekeurig aantal externe Linux/Unix-servers via ~/.ssh/authorized_keys om wachtwoordloze SSH-aanmelding in te schakelen
  • Git-hostingverificatie: Voeg de openbare sleutel toe aan GitHub, GitLab of Bitbucket om git push- en git pull-bewerkingen te authenticeren zonder elke keer referenties in te voeren
  • CI/CD-pijplijnen: Maak een toegewezen implementatiesleutelpaar voor geautomatiseerde scripts of build-agents die SSH-toegang nodig hebben tot servers of privéopslagplaatsen

Hoe het werkt

Sleutelgeneratie maakt gebruik van de ingebouwde crypto.subtle API van de browser (Web Crypto). Voor Ed25519 worden de onbewerkte 32-byte privéscalaire en 32-byte openbare sleutel verpakt in de OpenSSH-draadindeling (openssh-key-v1). Voor RSA wordt de sleutel geëxporteerd in PKCS#8 DER-indeling en verpakt in een standaard PEM-envelop. De openbare sleutelblob wordt gecodeerd in de SSH-draadindeling (lengtevoorvoegde algoritmenaam gevolgd door sleutelmateriaal) en Base64-gecodeerd, wat overeenkomt met de indeling die wordt verwacht door het authorized_keys-bestand van OpenSSH.

Tips

  • Stel na het downloaden de juiste machtigingen in voor het privésleutelbestand: chmod 600 ~/.ssh/id_ed25519. SSH weigert een privésleutel te gebruiken die leesbaar is voor andere gebruikers.
  • Gebruik Ed25519 tenzij u compatibiliteit nodig hebt met oudere systemen die dit niet ondersteunen. Het produceert kortere sleutels en is sneller dan RSA.
  • Het opmerkingsveld heeft geen invloed op de cryptografische sterkte van de sleutel — het is puur voor menselijke identificatie en kan later worden gewijzigd met ssh-keygen -c.
  • Voor maximale RSA-compatibiliteit met verouderde servers gebruikt u 4096-bits sleutels. Voor moderne servers heeft Ed25519 de voorkeur, ongeacht de RSA-sleutelgrootte.