Pack Camo

Générateur de paires de clés RSA et SSH

Paires de clés RSA, ECDSA et Ed25519 en PEM et OpenSSH, générées sur votre appareil.

Tout s'exécute localement — rien n'est téléversé.

Génération de votre paire de clés…

Générez une paire de clés SSH ou RSA sans rien installer

Ce générateur crée une nouvelle paire de clés Ed25519, ECDSA (P-256, P-384, P-521) ou RSA (2048, 3072, 4096 bits) avec la Web Crypto API de votre navigateur et l'exporte dans les formats dont vous avez besoin : une clé privée OpenSSH et une ligne <code>authorized_keys</code>, exactement comme les produirait <code>ssh-keygen</code> ; des fichiers PEM PKCS#8 et SPKI pour OpenSSL, TLS et les bibliothèques JWT ; un JWK public ; et l'empreinte <code>SHA256:</code>. Les clés sont générées sur votre appareil et la clé privée ne quitte jamais cette page.

Comment générer une paire de clés SSH

  1. 1Choisissez le type de clé : Ed25519 est le choix moderne par défaut pour SSH ; prenez RSA pour les anciens serveurs et pour les clés de signature PEM ou JWT.
  2. 2Saisissez éventuellement un commentaire, souvent user@host, pour reconnaître la clé plus tard dans authorized_keys.
  3. 3Cliquez sur Générer. Téléchargez la clé privée sous le nom id_ed25519 (ou id_rsa, id_ecdsa) et la clé publique sous le même nom suivi de .pub.
  4. 4Placez les deux dans ~/.ssh/, lancez chmod 600 ~/.ssh/id_ed25519 et ajoutez la ligne de la clé publique au ~/.ssh/authorized_keys du serveur ou aux réglages de clés SSH de votre hébergeur Git.

Quel type de clé choisir ?

Ed25519
Petite (une clé publique de 68 caractères), rapide et résistante aux erreurs d'implémentation. Prise en charge par OpenSSH 6.5 et plus, GitHub, GitLab et tous les serveurs actuels. Le meilleur choix pour SSH aujourd'hui.
ECDSA (P-256, P-384, P-521)
Courbes NIST, nécessaires lorsque des règles de conformité les imposent ou lorsque Ed25519 n'est pas accepté, comme sur certains jetons matériels et services de clés cloud.
RSA
Le choix le plus compatible, y compris avec de très anciens serveurs SSH et de nombreuses bibliothèques TLS et JWT (RS256). Utilisez au moins 3072 bits pour des clés censées durer au-delà de 2030 ; 2048 est le minimum encore jugé acceptable.

Les formats expliqués

Clé privée OpenSSH
<code>-----BEGIN OPENSSH PRIVATE KEY-----</code>, le format écrit par défaut par <code>ssh-keygen</code>. Générée ici sans chiffrement ; ajoutez une phrase secrète ensuite avec <code>ssh-keygen -p -f id_ed25519</code>.
Clé publique OpenSSH
Une ligne, <code>ssh-ed25519 AAAA… comment</code>, pour <code>authorized_keys</code>, GitHub, GitLab et les consoles cloud.
Clé privée PKCS#8 (PEM)
<code>-----BEGIN PRIVATE KEY-----</code>, le conteneur standard que lisent OpenSSL, Java, Node.js, Go et la plupart des bibliothèques JWT, quel que soit le type de clé.
Clé publique SPKI (PEM)
<code>-----BEGIN PUBLIC KEY-----</code>, la forme X.509 SubjectPublicKeyInfo utilisée pour vérifier des signatures et dans les réglages de vérification JWT.
JWK
La clé publique en JSON (RFC 7517), avec une empreinte <code>kid</code>, prête à publier dans un endpoint JWKS.

Empreintes

L'empreinte est un hachage SHA-256 de la clé publique au format wire SSH, encodé en Base64 sans remplissage : SHA256:…. C'est ce qu'affiche ssh-keygen -lf id_ed25519.pub, ce que GitHub liste à côté de chaque clé et ce que SSH montre quand il vous demande de faire confiance à un nouvel hôte. Comparer les empreintes permet de vérifier que deux copies d'une clé publique sont bien la même clé.

Est-il sûr de générer des clés dans un navigateur ?

Les clés proviennent de crypto.subtle.generateKey, la cryptographie intégrée au navigateur, qui puise dans le générateur aléatoire sécurisé du système d'exploitation — la même source que ssh-keygen. Rien n'est envoyé sur le réseau : vous pouvez charger cette page, vous déconnecter et générer des clés hors ligne.

Pour des clés qui protègent des systèmes de production, l'endroit le plus sûr pour les générer reste la machine qui les utilisera, avec ssh-keygen -t ed25519, ou une clé matérielle. Cet outil est idéal pour les environnements de test, les clés de déploiement CI, les clés de signature JWT et les machines sans OpenSSH. Pour inspecter un certificat basé sur une telle clé, utilisez le décodeur de certificats.

Questions fréquentes

Comment générer une clé SSH en ligne ?
Choisissez Ed25519, saisissez un commentaire comme votre e-mail, cliquez sur Générer, puis téléchargez la clé privée (id_ed25519) et la clé publique (id_ed25519.pub). Placez-les dans ~/.ssh et ajoutez la ligne .pub au serveur ou à votre hébergeur Git.
Ed25519 est-il meilleur que RSA ?
Pour SSH, oui : les clés Ed25519 sont bien plus courtes, plus rapides à utiliser et offrent une sécurité comparable à RSA-3072. Ne choisissez RSA que pour les systèmes qui ne prennent pas en charge Ed25519.
Pourquoi Ed25519 n'est-il pas disponible dans mon navigateur ?
Ed25519 est arrivé dans la Web Crypto API avec Firefox 129, Safari 17 et Chrome 137. Sur un navigateur plus ancien, mettez-le à jour ou choisissez ECDSA ou RSA.
Puis-je ajouter une phrase secrète à la clé privée ?
La clé est générée sans. Ajoutez une phrase secrète sur votre propre machine avec ssh-keygen -p -f ~/.ssh/id_ed25519, qui chiffre le fichier sur place.
Comment convertir la clé au format .ppk de PuTTY ?
Ouvrez PuTTYgen, choisissez Load, sélectionnez la clé privée OpenSSH téléchargée et enregistrez-la comme clé privée. PuTTYgen lit directement le format OpenSSH.
Quel fichier va sur le serveur ?
Seulement la clé publique, l'unique ligne du fichier .pub, ajoutée à ~/.ssh/authorized_keys. La clé privée reste sur votre ordinateur et ne doit jamais être partagée.
Pourquoi SSH dit-il que les permissions de ma clé privée sont trop ouvertes ?
SSH refuse les clés privées lisibles par d'autres utilisateurs. Lancez chmod 600 sur le fichier de la clé privée et chmod 700 sur le dossier ~/.ssh.
Les clés sont-elles envoyées à un serveur ?
Non. Elles sont générées par la Web Crypto API de votre navigateur sur cette page et n'existent qu'en mémoire jusqu'à ce que vous les téléchargiez ou les copiiez.