SSH et clés RSA expliqués : générer, utiliser et sécuriser vos paires de clés
Un guide pratique sur les paires de clés SSH et RSA — comment elles fonctionnent, comment les générer dans votre navigateur, et comment les utiliser pour un accès serveur sécurisé et le chiffrement.
La cryptographie à clé publique est le fondement des communications internet sécurisées — les connexions SSH, HTTPS, la signature JWT et les e-mails chiffrés en dépendent tous. Comprendre le fonctionnement des paires de clés fait de vous un développeur plus efficace et un utilisateur plus conscient des enjeux de sécurité.
Le concept fondamental : clés publique et privée
Une paire de clés se compose de deux clés mathématiquement liées :
- Clé privée — Reste sur votre machine. Ne la partagez jamais. Considérez-la comme votre identité.
- Clé publique — Partagez-la librement. Vous la déposez sur des serveurs, dans GitHub, dans les configurations JWT.
Les mathématiques fonctionnent dans un seul sens : les données chiffrées avec une clé publique ne peuvent être déchiffrées qu'avec la clé privée correspondante. Et les données signées avec une clé privée peuvent être vérifiées avec la clé publique — sans révéler la clé privée.
Clés SSH : accès serveur sans mot de passe
SSH (Secure Shell) est le standard pour l'accès aux serveurs distants. L'authentification par mot de passe fonctionne, mais présente des failles — les mots de passe peuvent être devinés, hameçonnés ou divulgués. L'authentification par clé SSH est fondamentalement plus robuste :
- Votre client présente une preuve cryptographique à l'aide de votre clé privée
- Le serveur vérifie la preuve en la comparant à la clé publique que vous avez installée
- Aucun mot de passe ne transite par le réseau — il n'y a rien à intercepter
Configurer l'authentification par clé SSH :
# Générer une paire de clés (Ed25519 est le standard moderne)
ssh-keygen -t ed25519 -C "votre-email@example.com"
# Copier la clé publique sur un serveur
ssh-copy-id utilisateur@votreserveur.com
# Se connecter — aucun mot de passe requis
ssh utilisateur@votreserveur.com
La clé publique est ajoutée dans ~/.ssh/authorized_keys sur le serveur. La clé privée ne quitte jamais votre machine.
Ed25519 vs RSA pour SSH
Ed25519 est la recommandation actuelle :
- Clés plus courtes (256 bits) offrant une sécurité équivalente ou supérieure à RSA-4096
- Génération et vérification de signature plus rapides
- Pris en charge par tous les serveurs SSH modernes
RSA reste très utilisé, notamment dans les environnements d'entreprise disposant de systèmes plus anciens :
- 2048 bits est la taille minimale acceptable aujourd'hui
- 4096 bits offre une marge supplémentaire pour les clés à longue durée de vie
- Des tailles de clés plus grandes impliquent une authentification légèrement plus lente
Générez des clés SSH dans votre navigateur avec notre Générateur de clés SSH — Ed25519 et ECDSA, via le Web Crypto API. Aucune donnée de clé ne quitte votre navigateur.
Clés RSA : chiffrement et signature
Les clés RSA s'utilisent au-delà de SSH — pour les certificats TLS, la signature JWT, les e-mails chiffrés (PGP) et l'authentification API.
Cas d'usage courants des clés RSA :
JWT (JSON Web Tokens) avec RS256 :
- Signez les tokens avec votre clé privée RSA
- Les clients vérifient avec la clé publique
- Contrairement à HS256 (symétrique), le vérificateur n'a jamais besoin du secret de signature
Signature de code :
- Signez un artefact de release avec votre clé privée
- Les utilisateurs vérifient la signature avec votre clé publique publiée
- Prouve que l'artefact provient bien de vous et n'a pas été altéré
Certificats TLS/SSL :
- Les autorités de certification signent votre clé publique avec leur clé privée
- Les navigateurs vérifient en utilisant la clé publique de l'AC (intégrée au navigateur)
Générez des paires de clés RSA au format PEM avec notre Générateur de clés RSA — 2048 bits ou 4096 bits, entièrement dans votre navigateur.
Le format PEM expliqué
Les clés RSA et SSH sont couramment distribuées au format PEM (Privacy Enhanced Mail) :
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC7o4qne60...
-----END PRIVATE KEY-----
L'en-tête et le pied de page identifient le type de clé. La partie centrale contient les données de clé encodées en base64. Les différents en-têtes indiquent différents types de clés :
BEGIN RSA PRIVATE KEY— Format traditionnel PKCS#1BEGIN PRIVATE KEY— Format PKCS#8 (plus courant dans les outils modernes)BEGIN PUBLIC KEY— Clé publique au format PKCS#8BEGIN OPENSSH PRIVATE KEY— Format propre à OpenSSH pour les clés SSH
Protéger votre clé privée
La sécurité de la clé privée est primordiale :
- Ne jamais la valider dans git — Ajoutez
*.pem,id_rsaetid_ed25519à votre.gitignore - Utiliser une phrase secrète — Chiffre la clé au repos. Même si quelqu'un obtient le fichier, il ne peut pas l'utiliser sans la phrase secrète.
- Restreindre les permissions — SSH exige
chmod 600sur les fichiers de clé privée ; il refuse d'utiliser des clés lisibles par d'autres - Effectuer une rotation en cas de compromission — Générez une nouvelle paire et supprimez l'ancienne clé publique de tous les serveurs
# Définir les permissions correctes sur votre clé privée
chmod 600 ~/.ssh/id_ed25519
Empreintes de clés
Une empreinte est un hash court d'une clé publique utilisé pour vérifier une identité sans comparer la clé complète :
ssh-keygen -lf ~/.ssh/id_ed25519.pub
# Sortie : 256 SHA256:abc123... votre-email@example.com (ED25519)
Lors de la première connexion à un serveur, SSH affiche l'empreinte de l'hôte et vous demande de la confirmer. Vérifiez cette empreinte via un canal séparé (la documentation du fournisseur de serveur) avant de l'accepter.
Résumé
Les paires de clés SSH et RSA offrent une authentification et un chiffrement fondamentalement plus robustes que les mots de passe. Utilisez Ed25519 pour SSH, RSA-4096 pour la signature et le chiffrement, protégez toujours les clés privées avec une phrase secrète, et générez les clés localement — ne laissez jamais un service tiers générer votre clé privée à votre place.