{"id":917,"date":"2026-07-22T18:34:24","date_gmt":"2026-07-22T16:34:24","guid":{"rendered":"https:\/\/jm.garreta.eu\/blog\/?p=917"},"modified":"2026-07-22T18:34:25","modified_gmt":"2026-07-22T16:34:25","slug":"cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent","status":"publish","type":"post","link":"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/","title":{"rendered":"Cl\u00e9s SSH : arr\u00eate de les g\u00e9n\u00e9rer n\u2019importe comment"},"content":{"rendered":"<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"Article\",\n  \"headline\": \"Cl\u00e9s SSH : arr\u00eate de les g\u00e9n\u00e9rer n\u2019importe comment\",\n  \"description\": \"Cl\u00e9s SSH = la serrure de ton homelab. Apprends \u00e0 g\u00e9n\u00e9rer des cl\u00e9s Ed25519, prot\u00e9ger la passphrase, organiser tes identit\u00e9s et g\u00e9rer ssh-agent pour garder le contr\u00f4le.\",\n  \"mainEntityOfPage\": {\n    \"@type\": \"WebPage\",\n    \"@id\": \"https:\/\/jm.garreta.eu\/\"\n  },\n  \"author\": {\n    \"@type\": \"Person\",\n    \"name\": \"JM Garreta\"\n  },\n  \"publisher\": {\n    \"@type\": \"Organization\",\n    \"name\": \"jm.garreta.eu\"\n  },\n  \"inLanguage\": \"fr\",\n  \"wordCount\": 1200\n}\n<\/script><\/p>\n<p>Quand on se lance dans le <strong>self-hosting<\/strong>, on finit toujours par taper la m\u00eame commande : <code>ssh-keygen<\/code>, Entr\u00e9e trois fois, et hop\u2026 \u00e7a marche. Sauf que tes <strong>cl\u00e9s SSH<\/strong> ne sont pas un d\u00e9tail : ce sont litt\u00e9ralement les cl\u00e9s d\u2019acc\u00e8s \u00e0 tes serveurs. Et si tu les fabriques ou les organises mal, tu passes tr\u00e8s vite de \u00ab un fichier vol\u00e9 \u00bb \u00e0 \u00ab un acc\u00e8s permanent \u00e0 tout ton parc \u00bb.<\/p>\n<p>Dans ce guide, je te donne la m\u00e9thode que j\u2019applique sur mon homelab : bon format, bonne commande, passphrase obligatoire, organisation par usages, et <strong>ssh-agent<\/strong> bien configur\u00e9. Pas de th\u00e9orie inutile : juste des d\u00e9cisions concr\u00e8tes qui r\u00e9duisent le risque.<\/p>\n<h2>1) Le bon format en 2026 : Ed25519, point<\/h2>\n<p>Si tu ne dois retenir qu\u2019une chose : g\u00e9n\u00e8re tes cl\u00e9s en <strong>Ed25519<\/strong>. La commande minimale est :<\/p>\n<pre><code>ssh-keygen -t ed25519<\/code><\/pre>\n<p>Pourquoi je pousse Ed25519 ? Parce que c\u2019est un choix moderne, efficace et robuste dans l\u2019\u00e9cosyst\u00e8me OpenSSH. Et surtout : c\u2019est le format que tu veux standardiser dans ton homelab, pour \u00e9viter les exceptions et les \u201c\u00e7a marche chez moi\u201d qui finissent par co\u00fbter cher.<\/p>\n<h3>Ce que tu \u00e9vites<\/h3>\n<ul>\n<li><strong>DSA<\/strong> : obsol\u00e8te, \u00e0 oublier.<\/li>\n<li><strong>ECDSA<\/strong> : acceptable en th\u00e9orie, mais je pr\u00e9f\u00e8re \u00e9viter les compromis et rester sur Ed25519.<\/li>\n<li><strong>RSA<\/strong> : utile uniquement pour l\u2019interop avec un vieux syst\u00e8me. Sinon, tu perds du temps \u00e0 g\u00e9rer un h\u00e9ritage.<\/li>\n<\/ul>\n<figure><img decoding=\"async\" src=\"https:\/\/jm.garreta.eu\/blog\/wp-content\/uploads\/2026\/07\/inline-917-0.png\" alt=\"Commande ssh-keygen en Ed25519 avec indicateurs de s\u00e9curit\u00e9\" \/><figcaption>Commande ssh-keygen en Ed25519 avec indicateurs de s\u00e9curit\u00e9<\/figcaption><\/figure>\n<h2>2) La commande id\u00e9ale, d\u00e9cortiqu\u00e9e<\/h2>\n<p>Voici la ligne que j\u2019utilise et que je te recommande d\u2019adopter comme standard :<\/p>\n<pre><code>ssh-keygen -t ed25519 -a 100 -C \"moi@mon-pc\" -f ~\/.ssh\/id_ed25519_mon_pc<\/code><\/pre>\n<p>Chaque option a un r\u00f4le. Et c\u2019est pr\u00e9cis\u00e9ment l\u00e0 que beaucoup de gens \u201cg\u00e9n\u00e8rent n\u2019importe comment\u201d : ils laissent des valeurs par d\u00e9faut sans comprendre ce qu\u2019elles prot\u00e8gent.<\/p>\n<h3><strong>-t ed25519<\/strong> : le type de cl\u00e9<\/h3>\n<p>On l\u2019a vu : c\u2019est ton standard. Pas de d\u00e9bat.<\/p>\n<h3><strong>-a 100<\/strong> : le blindage du fichier au repos<\/h3>\n<p>Ta cl\u00e9 priv\u00e9e n\u2019est pas stock\u00e9e en clair si tu mets une passphrase. Elle est chiffr\u00e9e, et <strong>-a<\/strong> r\u00e8gle le co\u00fbt de d\u00e9rivation de la cl\u00e9 de chiffrement (KDF). Plus tu augmentes ce co\u00fbt, plus un attaquant qui vole le fichier doit \u201cpayer\u201d du temps pour tester des passphrases.<\/p>\n<p>En pratique, <strong>100<\/strong> est un bon compromis : tu ne le sens presque pas \u00e0 l\u2019usage (une fois au d\u00e9verrouillage), mais tu rends les essais beaucoup plus co\u00fbteux pour un attaquant.<\/p>\n<p><strong>Point important :<\/strong> <code>-a<\/code> ne sert \u00e0 rien si tu ne mets pas de passphrase. Donc on encha\u00eene.<\/p>\n<h3><strong>-C<\/strong> : un commentaire utile<\/h3>\n<p>Le commentaire (<code>moi@mon-pc<\/code>) n\u2019ajoute pas de s\u00e9curit\u00e9 cryptographique. Mais il te sauve la vie quand tu retrouves une cl\u00e9 dans un <code>authorized_keys<\/code> six mois plus tard : tu sais \u00e0 quoi elle correspond.<\/p>\n<h3><strong>-f<\/strong> : le nom explicite qui \u00e9vite le chaos<\/h3>\n<p>Le chemin de sortie (<code>~\/.ssh\/id_ed25519_mon_pc<\/code>) n\u2019est pas qu\u2019un d\u00e9tail. C\u2019est l\u2019organisation qui te permet de savoir quelle cl\u00e9 est o\u00f9, et de r\u00e9voquer vite quand une machine change.<\/p>\n<h3>Ce que je ne fais jamais : <code>-N<\/code><\/h3>\n<p>Je ne passe jamais la passphrase en argument avec <code>-N<\/code>. Elle finirait dans l\u2019historique de ton shell ou dans des logs. Tu la tapes au prompt, c\u2019est plus s\u00fbr.<\/p>\n<h2>3) Passphrase obligatoire (et comment ne pas la rendre p\u00e9nible)<\/h2>\n<p>Une cl\u00e9 SSH <strong>sans passphrase<\/strong>, c\u2019est une cl\u00e9 priv\u00e9e qui peut ouvrir tes serveurs et qui tra\u00eene sur ton disque. Si un jour ta machine est compromise, la \u201cs\u00e9curit\u00e9 au repos\u201d dispara\u00eet.<\/p>\n<p>Ma r\u00e8gle : <strong>toujours une passphrase forte<\/strong>. Et ensuite, on g\u00e8re le confort avec <strong>ssh-agent<\/strong>.<\/p>\n<figure><img decoding=\"async\" src=\"https:\/\/jm.garreta.eu\/blog\/wp-content\/uploads\/2026\/07\/inline-917-1.png\" alt=\"Une cl\u00e9 SSH ne s\u2019expire pas : attention aux cl\u00e9s oubli\u00e9es dans authorized_keys\" \/><figcaption>Une cl\u00e9 SSH ne s\u2019expire pas : attention aux cl\u00e9s oubli\u00e9es dans authorized_keys<\/figcaption><\/figure>\n<h2>4) Le pi\u00e8ge : une cl\u00e9 SSH n\u2019expire jamais<\/h2>\n<p>Contrairement \u00e0 un certificat TLS, une paire de cl\u00e9s SSH \u201cclassique\u201d n\u2019a pas de date de validit\u00e9. Une fois que ta cl\u00e9 publique est dans <code>authorized_keys<\/code>, elle fonctionne <strong>ind\u00e9finiment<\/strong> jusqu\u2019\u00e0 ce que tu la retires.<\/p>\n<p>Le vrai danger en homelab, ce n\u2019est pas \u201cla cl\u00e9 trop vieille\u201d. C\u2019est la <strong>cl\u00e9 oubli\u00e9e<\/strong> : un ancien laptop revendu, une VM r\u00e9install\u00e9e, un t\u00e9l\u00e9phone perdu\u2026 et pourtant l\u2019acc\u00e8s reste valide parce que personne n\u2019a fait le m\u00e9nage.<\/p>\n<h3>Deux solutions r\u00e9alistes<\/h3>\n<ol>\n<li><strong>Rotation manuelle<\/strong> : tu r\u00e9g\u00e9n\u00e8res tes paires p\u00e9riodiquement (par exemple une fois par an) et tu remplaces les cl\u00e9s publiques sur tes serveurs.<\/li>\n<li><strong>Certificats SSH<\/strong> : tu utilises une CA et des certificats avec une fen\u00eatre de validit\u00e9. Quand \u00e7a expire, le serveur refuse automatiquement.<\/li>\n<\/ol>\n<p>Mon avis : pour un petit parc (un VPS + un NAS), monter une PKI compl\u00e8te peut \u00eatre disproportionn\u00e9. Mais d\u00e8s que tu passes \u00e0 plusieurs machines, l\u2019approche certificats devient int\u00e9ressante. Dans tous les cas, garde en t\u00eate une r\u00e8gle : <strong>audit r\u00e9gulier<\/strong> de qui a acc\u00e8s \u00e0 quoi.<\/p>\n<h2>5) Combien de cl\u00e9s ? et combien de passphrases ?<\/h2>\n<p>On confond souvent deux d\u00e9cisions diff\u00e9rentes : le nombre de cl\u00e9s et le nombre de passphrases. Elles ne r\u00e9pondent pas aux m\u00eames objectifs.<\/p>\n<h3>\u201cUne cl\u00e9 par usage\u201d \u2260 \u201cune cl\u00e9 par serveur\u201d<\/h3>\n<p>Le bon d\u00e9coupage, ce n\u2019est pas la destination (VPS, NAS, etc.). C\u2019est le point de d\u00e9part : <strong>quelle machine cliente<\/strong> et <strong>quel contexte<\/strong>.<\/p>\n<p>Exemple de d\u00e9coupage sain :<\/p>\n<pre><code>PC       \u2192 id_ed25519_pc       (ouvre VPS, NAS, etc.)\nLaptop   \u2192 id_ed25519_laptop   (ouvre VPS, NAS, etc.)\nPC       \u2192 id_ed25519_github   (d\u00e9di\u00e9e aux services tiers)<\/code><\/pre>\n<p>Pourquoi une cl\u00e9 d\u00e9di\u00e9e pour GitHub \/ services tiers ? Parce que tu confies la cl\u00e9 publique \u00e0 un tiers. Autant qu\u2019elle ne soit pas r\u00e9utilis\u00e9e pour tes acc\u00e8s \u201cmaison\u201d.<\/p>\n<h3>Une passphrase par machine (pas par cl\u00e9)<\/h3>\n<p>La passphrase sert \u00e0 prot\u00e9ger un fichier de cl\u00e9 priv\u00e9e vol\u00e9. Si plusieurs cl\u00e9s vivent sur <strong>la m\u00eame machine<\/strong> et partagent la m\u00eame passphrase, un attaquant qui acc\u00e8de au disque pourra tenter cette passphrase pour toutes.<\/p>\n<p>Mon conseil pragmatique : <strong>une passphrase forte et unique par machine cliente<\/strong>. Toutes les cl\u00e9s g\u00e9n\u00e9r\u00e9es sur ce poste peuvent partager cette passphrase.<\/p>\n<h3>Deux exceptions o\u00f9 tu cloisonnes plus<\/h3>\n<ul>\n<li><strong>Cl\u00e9 tierce (GitHub \/ services)<\/strong> : passphrase distincte si tu veux renforcer l\u2019isolation.<\/li>\n<li><strong>Cl\u00e9 mat\u00e9rielle<\/strong> (ex. <code>ed25519-sk<\/code>) pour ton acc\u00e8s le plus sensible : la partie secr\u00e8te ne peut pas \u00eatre copi\u00e9e depuis le disque. L\u00e0, la passphrase devient presque secondaire, parce que voler le fichier ne suffit plus.<\/li>\n<\/ul>\n<h2>6) ssh-agent : le confort sans sacrifier la s\u00e9curit\u00e9<\/h2>\n<p>\u201cTaper une passphrase \u00e0 chaque connexion, c\u2019est infernal.\u201d Oui. Mais justement : on ne le fait pas. <strong>ssh-agent<\/strong> garde tes cl\u00e9s d\u00e9chiffr\u00e9es en m\u00e9moire le temps de la session.<\/p>\n<p>Le but : tu tapes la passphrase une fois, puis tu encha\u00eenes tes connexions sans friction.<\/p>\n<figure><img decoding=\"async\" src=\"https:\/\/jm.garreta.eu\/blog\/wp-content\/uploads\/2026\/07\/inline-917-2.png\" alt=\"ssh-agent garde les cl\u00e9s en m\u00e9moire pour \u00e9viter de retaper la passphrase\" \/><figcaption>ssh-agent garde les cl\u00e9s en m\u00e9moire pour \u00e9viter de retaper la passphrase<\/figcaption><\/figure>\n<h3>Le r\u00e9flexe qui change tout : <code>AddKeysToAgent yes<\/code><\/h3>\n<p>Dans <code>~\/.ssh\/config<\/code>, je mets :<\/p>\n<pre><code>Host *\n  AddKeysToAgent yes\n  IdentityFile ~\/.ssh\/id_ed25519_mon_pc<\/code><\/pre>\n<p>R\u00e9sultat : \u00e0 la premi\u00e8re utilisation, SSH charge la cl\u00e9 dans l\u2019agent. Ensuite, tu ne retapes pas la passphrase tant que l\u2019agent vit.<\/p>\n<h3>\u00c9vite les mauvaises surprises : <code>IdentitiesOnly yes<\/code><\/h3>\n<p>Quand tu as plusieurs cl\u00e9s, SSH peut essayer \u201ctrop de choses\u201d et provoquer des refus c\u00f4t\u00e9 serveur. Pour forcer la cl\u00e9 attendue, je recommande :<\/p>\n<pre><code>Host mon_serveur\n  HostName ton.ip.ou.domaine\n  User user_distant\n  IdentityFile ~\/.ssh\/id_ed25519_mon_pc\n  IdentitiesOnly yes<\/code><\/pre>\n<h2>7) Bien g\u00e9rer ssh-agent selon ton OS<\/h2>\n<p>Le probl\u00e8me n\u2019est pas ssh-agent. Le probl\u00e8me, c\u2019est le d\u00e9marrage. Beaucoup de gens lancent <code>ssh-add<\/code> alors qu\u2019aucun agent ne tourne, ou alors ils d\u00e9marrent un agent sans appliquer les variables d\u2019environnement.<\/p>\n<h3>Windows : l\u2019agent persiste (souvent le plus simple)<\/h3>\n<p>Sur Windows, le service OpenSSH agent peut \u00eatre configur\u00e9 pour d\u00e9marrer automatiquement. Ensuite, tu charges tes cl\u00e9s une fois, et elles reviennent apr\u00e8s reboot.<\/p>\n<pre><code>Set-Service ssh-agent -StartupType Automatic Start-Service ssh-agent<\/code><\/pre>\n<p>Attention : l\u2019agent garde les cl\u00e9s d\u00e9chiffr\u00e9es en m\u00e9moire via le service. Si ton acc\u00e8s est critique, la cl\u00e9 mat\u00e9rielle reste la meilleure option.<\/p>\n<h3>Linux : keychain ou systemd user<\/h3>\n<p>Sur Linux, une approche simple consiste \u00e0 utiliser <strong>keychain<\/strong> pour r\u00e9utiliser un agent existant et \u00e9viter de re-taper la passphrase \u00e0 chaque session.<\/p>\n<pre><code>sudo apt install keychain\n# dans ~\/.bashrc :\neval \"$(keychain --eval --quiet id_ed25519_pc id_ed25519_github)\"<\/code><\/pre>\n<p>Sur certaines configurations desktop, d\u2019autres composants peuvent aussi g\u00e9rer un agent. L\u2019id\u00e9e est de garder un contr\u00f4le clair sur \u201cqui lance quoi\u201d.<\/p>\n<h3>Mode ponctuel : le <code>eval<\/code> est obligatoire<\/h3>\n<p>Pour une t\u00e2che isol\u00e9e, tu peux lancer un agent \u201cjetable\u201d dans ton terminal. Mais fais-le correctement :<\/p>\n<pre><code>eval \"$(ssh-agent -s)\"<\/code><\/pre>\n<p>Le <code>eval<\/code> applique les variables d\u2019environnement dans ton shell courant. Sans \u00e7a, ton shell ne sait pas o\u00f9 joindre l\u2019agent, et <code>ssh-add<\/code> \u00e9choue.<\/p>\n<h3>Arr\u00eater proprement<\/h3>\n<p>Si tu as lanc\u00e9 l\u2019agent proprement, tu peux le tuer avec :<\/p>\n<pre><code>ssh-agent -k<\/code><\/pre>\n<p>Si tu as lanc\u00e9 sans <code>eval<\/code>, tu peux te retrouver avec un agent qui tourne \u201cdans le flou\u201d. Dans ce cas, un nettoyage global peut \u00eatre n\u00e9cessaire :<\/p>\n<pre><code>pkill -u \"$USER\" ssh-agent<\/code><\/pre>\n<h2>8) S\u00e9curit\u00e9 ssh-agent : les deux r\u00e9glages que je fais toujours<\/h2>\n<p>ssh-agent est pratique, mais il garde des cl\u00e9s d\u00e9chiffr\u00e9es en m\u00e9moire. Donc je limite l\u2019exposition.<\/p>\n<h3>Timeout sur les cl\u00e9s sensibles<\/h3>\n<p>Tu peux demander \u00e0 l\u2019agent de purger une cl\u00e9 apr\u00e8s un d\u00e9lai :<\/p>\n<pre><code>ssh-add -t 8h ~\/.ssh\/id_ed25519_mon_pc<\/code><\/pre>\n<p>Tu peux aussi mettre un comportement par d\u00e9faut dans la config pour \u00e9viter les oublis.<\/p>\n<h3>Forwarding d\u2019agent : prudence<\/h3>\n<p>Le forwarding d\u2019agent (<code>ForwardAgent yes<\/code> ou <code>ssh -A<\/code>) permet au serveur distant d\u2019utiliser ton agent pour rebondir ailleurs. C\u2019est pratique, mais si le serveur est compromis, l\u2019attaquant profite de ton agent tant que tu es connect\u00e9.<\/p>\n<p>Je pr\u00e9f\u00e8re une approche plus ma\u00eetris\u00e9e : <strong>ProxyJump<\/strong> pour le rebond, plut\u00f4t que le forwarding d\u2019agent.<\/p>\n<h2>Checklist : la m\u00e9thode \u00e0 appliquer d\u00e8s maintenant<\/h2>\n<ul>\n<li><strong>Format<\/strong> : Ed25519 partout.<\/li>\n<li><strong>Commande<\/strong> : <code>ssh-keygen -t ed25519 -a 100 -C \"...\" -f ~\/.ssh\/nom_explicite<\/code>.<\/li>\n<li><strong>Passphrase<\/strong> : obligatoire, forte, jamais via <code>-N<\/code>.<\/li>\n<li><strong>Nombre de cl\u00e9s<\/strong> : peu. Une par <strong>machine cliente<\/strong>, plus une d\u00e9di\u00e9e aux <strong>services tiers<\/strong>.<\/li>\n<li><strong>Passphrases<\/strong> : une par machine (et \u00e9ventuellement une distincte pour la cl\u00e9 tierce).<\/li>\n<li><strong>Confort<\/strong> : <code>AddKeysToAgent yes<\/code> + <code>IdentitiesOnly yes<\/code> quand n\u00e9cessaire.<\/li>\n<li><strong>Rotation \/ nettoyage<\/strong> : les cl\u00e9s n\u2019expirent pas, donc tu fais un audit et tu r\u00e9voques vite.<\/li>\n<li><strong>Acc\u00e8s sensible<\/strong> : cl\u00e9 mat\u00e9rielle si tu veux le cran au-dessus.<\/li>\n<\/ul>\n<h2>Conclusion : reprendre le contr\u00f4le de tes acc\u00e8s<\/h2>\n<p>Les <strong>cl\u00e9s SSH<\/strong> ne sont pas un \u201cd\u00e9tail de configuration\u201d. Ce sont tes serrures. Et une serrure mal g\u00e9r\u00e9e, c\u2019est un acc\u00e8s facile \u00e0 long terme.<\/p>\n<p>Si tu appliques cette m\u00e9thode\u2014Ed25519, passphrase, organisation claire, ssh-agent propre et audit r\u00e9gulier\u2014tu r\u00e9duis drastiquement le risque, tout en gardant un homelab fluide. La prochaine \u00e9tape logique ? Faire l\u2019inventaire de tes <code>authorized_keys<\/code> et v\u00e9rifier que chaque cl\u00e9 correspond encore \u00e0 une machine que tu contr\u00f4les.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cl\u00e9s SSH = la serrure de ton homelab. Apprends \u00e0 g\u00e9n\u00e9rer des cl\u00e9s Ed25519, prot\u00e9ger la passphrase, organiser tes identit\u00e9s et g\u00e9rer ssh-agent pour garder le contr\u00f4le.<\/p>\n","protected":false},"author":1,"featured_media":919,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"blog_gen_system_prompt":"Tu es un agent IA \u00e9ditorial expert en r\u00e9daction web SEO en fran\u00e7ais, adaptation de style \u00e0 partir d'un corpus, synth\u00e8se \u00e9ditoriale, et g\u00e9n\u00e9ration de prompts d'illustration. Tu agis comme un agent de production \u00e9ditoriale fiable, autonome, prudent et publiable.\r\n\r\nTYPES D'ARTICLES :\r\n- informatif : expliquer clairement un sujet, une notion, une actualit\u00e9.\r\n- synthese : condenser plusieurs id\u00e9es ou enseignements.\r\n- opinion : d\u00e9fendre un point de vue argument\u00e9, faits vs interpr\u00e9tation.\r\n- analyse : approfondir, mettre en perspective, comparer.\r\n- guide : aider le lecteur \u00e0 agir, m\u00e9thode, \u00e9tapes.\r\n- retour_experience : partager un v\u00e9cu, un apprentissage concret.\r\n- veille : commenter une source r\u00e9cente, une tendance.\r\n- comparatif : opposer options, outils, visions.\r\n- editorial : voix personnelle, incarn\u00e9e.\r\n\r\nR\u00c8GLES DE S\u00c9LECTION AUTO DU TYPE :\r\n1. URL seule : veille si r\u00e9cent, informatif si explication, analyse si profondeur, guide si recommandations.\r\n2. Th\u00e8me seul : informatif\/synthese par d\u00e9faut, opinion\/editorial si prise de position, guide si aide pratique.\r\n3. URL + th\u00e8me : type guid\u00e9 par le th\u00e8me, source comme base factuelle.\r\n\r\nR\u00c8GLES ABSOLUES :\r\n1. Ne jamais halluciner.\r\n2. URL fournie = base factuelle principale.\r\n3. Th\u00e8me fourni avec URL = angle \u00e9ditorial.\r\n4. Th\u00e8me seul = article fiable et prudent sans inventer de faits.\r\n5. Le corpus sert au ton, rythme, niveau de langue, structure, posture \u00e9ditoriale. Jamais copier.\r\n6. Information insuffisante = r\u00e9duire le niveau d'affirmation.\r\n7. Article ORIGINAL, pas de plagiat.\r\n8. NE PAS mentionner ni lister les URLs sources en fin d'article. Les liens sources seront ajout\u00e9s automatiquement par le syst\u00e8me.\r\n\r\nVOIX \u00c9DITORIALE \u2014 R\u00c8GLES IMP\u00c9RATIVES :\r\nTu es l'AUTEUR qui ma\u00eetrise le sujet et le transmet avec un point de vue assum\u00e9. Tu n'es PAS un journaliste qui r\u00e9sume un document externe. Tu \u00e9cris l'article, tu ne le commentes pas.\r\n\r\nLISTE NOIRE \u2014 ces tournures sont STRICTEMENT INTERDITES dans le champ \"content\" :\r\n- \"l'article\", \"l'article source\", \"dans l'article source\", \"selon l'article\", \"cet article traite de\", \"l'article parle de\", \"l'article indique que\"\r\n- \"le texte\", \"le texte relay\u00e9\", \"le texte indique\", \"selon le texte\"\r\n- \"la source\", \"la source indique\", \"selon la source\", \"d'apr\u00e8s la source\"\r\n- \"la publication mentionne\", \"la publication indique\"\r\n- \"d'apr\u00e8s les informations publi\u00e9es\"\r\n- \"les \u00e9l\u00e9ments mentionn\u00e9s\", \"parmi les \u00e9l\u00e9ments cit\u00e9s\", \"chiffre cit\u00e9 dans la source\", \"chiffre mentionn\u00e9\"\r\n- TOUTE mention d'un m\u00e9canisme interne ou d'une limite technique : \"tronqu\u00e9\", \"le contenu est tronqu\u00e9\", \"la source est partiellement tronqu\u00e9e\", \"le message fourni\", \"l'extrait\", \"dans le message\".\r\n\r\nR\u00c8GLE DE R\u00c9\u00c9CRITURE : au lieu de \"l'article indique que X fait Y\", \u00e9cris directement \"X fait Y\". Affirme l'information comme un fait ma\u00eetris\u00e9. Si une donn\u00e9e est incertaine, emploie un qualificatif neutre (\"il semble que\", \"selon toute vraisemblance\") SANS jamais r\u00e9f\u00e9rencer la source comme objet.\r\n\r\nPOUR opinion \/ editorial \/ analyse : prends un point de vue clairement affirm\u00e9 d\u00e8s le premier paragraphe. Emploie \"je\" ou \"nous\" selon le ton du corpus. Distingue tes opinions de tes constats, mais assume les deux.\r\n\r\nCLOISONNEMENT : le champ \"analyse.limites\" du JSON est le SEUL endroit o\u00f9 exprimer tes incertitudes ou les limites des sources. JAMAIS dans \"content\".\r\n\r\nANALYSE DE TON (si corpus fourni) :\r\nAnalyser ton dominant, formalit\u00e9, longueur phrases, densit\u00e9, structure, marqueurs de personnalit\u00e9, p\u00e9dagogie\/analyse\/opinion, introduction\/conclusion.\r\nReproduire une voix compatible sans plagiat ni caricature.\r\nSans corpus : style clair, expert, direct, cr\u00e9dible, fluide, lecture rapide.\r\n\r\nOPINION (si type le justifie) :\r\nDistinguer faits et interpr\u00e9tation. Ne jamais inventer d'arguments factuels. Posture affirm\u00e9e mais cr\u00e9dible.\r\n\r\nLONGUEUR : suivre la longueur cible indiqu\u00e9e dans le message utilisateur. Flexible si le sujet l'exige. Toujours privil\u00e9gier la densit\u00e9 utile.\r\n\r\nSEO OBLIGATOIRE :\r\n1. TITRE : mot-cl\u00e9 principal, < 60 caract\u00e8res, accrocheur.\r\n2. SLUG : d\u00e9riv\u00e9 du titre, minuscules, tirets, sans mots vides, < 75 car.\r\n3. META DESCRIPTION : 150-155 car, mot-cl\u00e9, incitation au clic.\r\n4. META TITLE SEO : peut diff\u00e9rer du H1, CTR, < 60 car.\r\n5. FOCUS KEYWORD.\r\n6. TAGS : 3 \u00e0 6, fran\u00e7ais, minuscules.\r\n7. CAT\u00c9GORIE : une cat\u00e9gorie principale.\r\n8. CONTENU HTML :\r\n   - PAS de H1 dans content.\r\n   - H2 > H3 hi\u00e9rarchie correcte.\r\n   - Mot-cl\u00e9 dans premier paragraphe et au moins un H2.\r\n   - Densit\u00e9 1-2% naturelle.\r\n   - Paragraphes courts (3-4 phrases).\r\n   - Au moins une liste \u00e0 puces ou num\u00e9rot\u00e9e.\r\n   - Introduction engageante.\r\n   - Conclusion concise avec ouverture.\r\n   - <strong> pour expressions importantes.\r\n9. JSON-LD Article schema.\r\n\r\nIMAGES :\r\n- 1 image mise en avant OBLIGATOIRE (featured_image).\r\n\r\nIMAGES INLINE (dans le corps de l'article) :\r\n- R\u00e8gle quantitative OBLIGATOIRE : 1 image inline par tranche de ~500 mots d\u00e8s lors que le sujet est visuel, technique ou proc\u00e9dural.\r\n    \u2022 < 500 mots -> 0 image inline\r\n    \u2022 500-900 mots -> ","blog_gen_user_prompt":"TYPE D'ARTICLE DEMAND\u00c9 : guide\r\n\r\nLONGUEUR CIBLE : environ 1200 mots. Adapte la densit\u00e9 en cons\u00e9quence. Si le sujet exige l\u00e9g\u00e8rement plus ou moins, reste flexible, mais vise cette cible.\r\n\r\nCONTRAINTES COMPL\u00c9MENTAIRES : Aucune r\u00e9\u00e9criture du texte, juste la gestion des images pour illustrer\r\n\r\n---D\u00c9BUT CORPUS DE STYLE---\r\n# Articles du blog \u2014 jm.garreta.eu\r\n\r\n> Export\u00e9 le 08\/03\/2026  \r\n> 116 articles au total\r\n\r\n---\r\n\r\n## Le RGPD j&rsquo;y comprends rien\r\n\r\n**Date :** 24 May 2018\r\n**Cat\u00e9gories :** Informatique\r\n**Tags :** rgpd\r\n\r\nVous entendez parler du RGPD ou r\u00e8glement g\u00e9n\u00e9ral sur la protection des donn\u00e9es personnelles qui entre en vigueur demain 25 mai 2018 et vous n'y comprenez rien ?\r\nEh bien franceinfo a publi\u00e9 un\r\ntr\u00e8s bon article\r\nqui r\u00e9sume ce qu'il faut savoir : la collecte des donn\u00e9es, une politique de confidentialit\u00e9 plus claire (j'esp\u00e8re que celle\r\nici\r\nl'est), un acc\u00e8s et une suppression plus facile de vos donn\u00e9es.\r\nA lire car Internet sera plus clair et on sent bien d\u00e9sormais que tous les acteurs ont bien pris conscience de la r\u00e8glementation et s'efforce de l'appliquer.\r\n\r\n---\r\n\r\n## Le bon respect de l&rsquo;ethic-ette\r\n\r\n**Date :** 25 May 2018\r\n**Cat\u00e9gories :** Informatique\r\n**Tags :** crack, faille, hack, s\u00e9curit\u00e9, vuln\u00e9rabilit\u00e9\r\n\r\nLe hacking l\u00e9gal existe, il est possible soit en s'entra\u00eenant par le biais de machines virtuelles mises \u00e0 disposition pour cibler une particularit\u00e9 comme\r\nhttps:\/\/www.vulnhub.com\/\r\n, ou des sites qui mettent en place des challenges comme\r\nhttps:\/\/www.root-me.org\/\r\n, ou soit par des plateformes de recherche de failles dites bug bounty que des entreprises peuvent utiliser pour v\u00e9rifier leur s\u00e9curit\u00e9 contre r\u00e9mun\u00e9ration, la plus connue en France\r\nhttps:\/\/bountyfactory.io\/\r\n.\r\nSi la s\u00e9curit\u00e9 informatique vous int\u00e9resse, il est obligatoire de passer par l\u00e0, vous vous amuserez \u00e0 mieux comprendre comment cela fonctionne, et pas de risque de voir monsieur le gendarme sonner chez vous \u00e0 6h du matin.\r\nEt impossible de parler s\u00e9curit\u00e9 sans faire un peu de pub pour la communaut\u00e9\r\nZenK-Security\r\n.\r\nSource\r\n\r\n---\r\n\r\n## V\u00e9rifiez la s\u00e9curit\u00e9 de votre mot de passe\r\n\r\n**Date :** 25 May 2018\r\n**Cat\u00e9gories :** Informatique\r\n**Tags :** crack, hack, passphrase, password\r\n\r\nEn regardant une intervention de Damien Bancal de\r\nZATAZ\r\n, celui-ci a parl\u00e9 du site\r\nhttps:\/\/howsecureismypassword.net\/\r\nque je ne connaissais pas et qui permet de v\u00e9rifier la solidit\u00e9 de votre mot de passe. Est-il solide ? Dans un dictionnaire ? Combien de temps un hacker mettra-t-il pour le trouver ?\r\n\r\n---\r\n\r\n## T&rsquo;es pas d\u00e9veloppeur tant que t&rsquo;as pas d\u00e9velopp\u00e9 longtemps, tr\u00e8s longtemps\r\n\r\n**Date :** 25 May 2018\r\n**Cat\u00e9gories :** Informatique\r\n**Tags :** d\u00e9veloppement, programmation\r\n\r\nVoil\u00e0 bien une vision que je partage, celle de Peter Norvig de chez Google. Selon lui l'apprentissage de la programmation prend 10 ans, car non on n'apprendra jamais \u00e0 programmer en lisant un livre.\r\nIl faut une bonne formation, \u00eatre curieux, s'int\u00e9resser \u00e0 plusieurs langages, et pratiquer et de diff\u00e9rentes mani\u00e8res (seul, en \u00e9quipe, en initiant un projet ou en reprenant un existant).\r\nJe m'en aper\u00e7ois avec l'exp\u00e9rience, aujourd'hui je suis capable de passer d'un langage \u00e0 un autre selon le besoin, ou d'en apprendre un nouveau assez facilement. La logique est importante, pour des probl\u00e8mes fonctionnels, de performance, de maintenabilit\u00e9. Mais tout cela s'acquiert en programmant. La th\u00e9orie est belle, mais on ne progresse qu'en butant sur les difficult\u00e9s. J'ai atteint aujourd'hui un certain niveau, mais c'est bien parce que j'\u00e9tais dans la pratique.\r\nInitier des projets, ou reprendre quelque chose te fait forc\u00e9ment progresser, les erreurs ou diff\u00e9rences des autres te font r\u00e9fl\u00e9chir et ont permis d'am\u00e9liorer mes programmes et fa\u00e7ons de faire, je sens bien que je suis plus productif, et on m'appelle tr\u00e8s souvent aussi pour partager des avis. Cela tu ne l'as pas autrement.\r\nBref si vous voulez devenir d\u00e9veloppeur, commencez, et surtout pratiquez encore, encore et encore.\r\nSource\r\n\u2013\r\nSource\r\n\r\n---\r\n\r\n## Il est design\u00e9 ton logiciel ?\r\n\r\n**Date :** 29 May 2018\r\n**Cat\u00e9gories :** Informatique\r\n**Tags :** design, gui, ui, ux\r\n\r\nIl est quand m\u00eame fr\u00e9quent de voir des applications libres non ergonomiques et pas pratiques. Pourtant le besoin premier d'un logiciel est non seulement de r\u00e9pondre \u00e0 un besoin, mais aussi d'\u00eatre facile \u00e0 utiliser et intuitif.\r\nSi un logiciel devient une usine \u00e0 gaz pour une t\u00e2che tr\u00e8s simple, on se demande si certains d\u00e9veloppeurs testent vraiment leur logiciel et si quand ils l'utilisent se disent vraiment s'il est pratique. Quand je d\u00e9veloppe une application, je fais en sorte que celle-ci soit simple et qu'une action soit possible en moins de 3 clics.\r\nCependant nous ne sommes pas des graphistes, et il arrive vite qu'une application soit moche. D'autant plus qu'un regard ext\u00e9rieur permet toujours d'avoir un approche critique et souvent b\u00e9n\u00e9fique pour faciliter l'utilisation.\r\nCet article\r\nDesigners & Logiciels libres : et si on collaborait ?\r\nmontre que des designers cherchent \u00e0 mettre en place ","blog_gen_featured_img_prompt":"Illustration \u00e9ditoriale r\u00e9aliste et moderne : un serveur en arri\u00e8re-plan (rack discret), au premier plan une grande cl\u00e9 stylis\u00e9e (m\u00e9tal) avec un motif de courbe elliptique inspir\u00e9 de Ed25519, ambiance dark tech, \u00e9clairage bleu\/vert, profondeur de champ, composition centr\u00e9e, style photo-illustration, haute r\u00e9solution, sans texte lisible, sans logos.","blog_gen_inline_img_prompts":"[{\"placeholder\":\"[IMAGE:1]\",\"prompt\":\"Sch\u00e9ma visuel p\u00e9dagogique : interface de terminal Linux affichant une commande ssh-keygen avec Ed25519, arri\u00e8re-plan sombre, surimpression d\u2019ic\u00f4nes simples (bouclier, cadenas) pour symboliser la s\u00e9curit\u00e9, style flat + l\u00e9ger r\u00e9alisme, couleurs bleu nuit et cyan, pas de texte autre que la commande, composition propre type blog tech.\",\"alt_text\":\"Commande ssh-keygen en Ed25519 avec indicateurs de s\u00e9curit\u00e9\"},{\"placeholder\":\"[IMAGE:2]\",\"prompt\":\"Visuel conceptuel : une cl\u00e9 SSH repr\u00e9sent\u00e9e comme une carte d\u2019acc\u00e8s, avec une timeline sans date d\u2019expiration (barre qui s\u2019\u00e9tend \u00e0 l\u2019infini) et un pictogramme de \u201ccl\u00e9 oubli\u00e9e\u201d (laptop ancien en arri\u00e8re-plan), ambiance sombre, style infographie moderne, couleurs bleu\/gris, sans texte lisible.\",\"alt_text\":\"Une cl\u00e9 SSH ne s\u2019expire pas : attention aux cl\u00e9s oubli\u00e9es dans authorized_keys\"},{\"placeholder\":\"[IMAGE:3]\",\"prompt\":\"Illustration technique : un agent ssh-agent comme un petit \u201cbo\u00eetier\u201d en m\u00e9moire (ic\u00f4ne de RAM) qui garde des cl\u00e9s d\u00e9chiffr\u00e9es, avec un flux vers plusieurs connexions SSH (petits n\u0153uds), style diagramme tech, fond sombre, palette cyan\/vert, rendu net, sans texte lisible.\",\"alt_text\":\"ssh-agent garde les cl\u00e9s en m\u00e9moire pour \u00e9viter de retaper la passphrase\"}]","blog_gen_model":"gpt-5.4-nano","blog_gen_image_model":"gpt-image-1","blog_gen_timestamp":"2026-07-22T16:33:00.039Z","blog_gen_type_article":"guide","blog_gen_longueur_cible":"1200","footnotes":""},"categories":[3],"tags":[493,492,290,29,146],"class_list":["post-917","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-informatique","tag-ed25519","tag-homelab","tag-rgpd","tag-securite","tag-ssh"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cl\u00e9s SSH : la m\u00e9thode s\u00fbre (Ed25519 + passphrase + agent)<\/title>\n<meta name=\"description\" content=\"Cl\u00e9s SSH = la serrure de ton homelab. Apprends \u00e0 g\u00e9n\u00e9rer des cl\u00e9s Ed25519, prot\u00e9ger la passphrase, organiser tes identit\u00e9s et g\u00e9rer ssh-agent pour garder le contr\u00f4le.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cl\u00e9s SSH : la m\u00e9thode s\u00fbre (Ed25519 + passphrase + agent)\" \/>\n<meta property=\"og:description\" content=\"Cl\u00e9s SSH = la serrure de ton homelab. Apprends \u00e0 g\u00e9n\u00e9rer des cl\u00e9s Ed25519, prot\u00e9ger la passphrase, organiser tes identit\u00e9s et g\u00e9rer ssh-agent pour garder le contr\u00f4le.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/\" \/>\n<meta property=\"og:site_name\" content=\"Le blog de Jean-Mich\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-22T16:34:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-22T16:34:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/jm.garreta.eu\/blog\/wp-content\/uploads\/2026\/07\/featured-917.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"jeanmich\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"jeanmich\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\\\/\"},\"author\":{\"name\":\"jeanmich\",\"@id\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/#\\\/schema\\\/person\\\/04d6a1c8008585cd30b5f0016770f7cb\"},\"headline\":\"Cl\u00e9s SSH : arr\u00eate de les g\u00e9n\u00e9rer n\u2019importe comment\",\"datePublished\":\"2026-07-22T16:34:24+00:00\",\"dateModified\":\"2026-07-22T16:34:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\\\/\"},\"wordCount\":1760,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/featured-917.png\",\"keywords\":[\"ed25519\",\"homelab\",\"rgpd\",\"s\u00e9curit\u00e9\",\"ssh\"],\"articleSection\":[\"Informatique\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\\\/\",\"url\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\\\/\",\"name\":\"Cl\u00e9s SSH : la m\u00e9thode s\u00fbre (Ed25519 + passphrase + agent)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/featured-917.png\",\"datePublished\":\"2026-07-22T16:34:24+00:00\",\"dateModified\":\"2026-07-22T16:34:25+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/#\\\/schema\\\/person\\\/04d6a1c8008585cd30b5f0016770f7cb\"},\"description\":\"Cl\u00e9s SSH = la serrure de ton homelab. Apprends \u00e0 g\u00e9n\u00e9rer des cl\u00e9s Ed25519, prot\u00e9ger la passphrase, organiser tes identit\u00e9s et g\u00e9rer ssh-agent pour garder le contr\u00f4le.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\\\/#primaryimage\",\"url\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/featured-917.png\",\"contentUrl\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/featured-917.png\",\"width\":1536,\"height\":1024,\"caption\":\"Cl\u00e9s SSH : la serrure de ton homelab, \u00e0 s\u00e9curiser avec Ed25519 et une passphrase\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cl\u00e9s SSH : arr\u00eate de les g\u00e9n\u00e9rer n\u2019importe comment\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/\",\"name\":\"Le blog de Jean-Mich\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/#\\\/schema\\\/person\\\/04d6a1c8008585cd30b5f0016770f7cb\",\"name\":\"jeanmich\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/816266d852c4595a2bfa578a991fa68bb8ed5e0217f3565158ca20c139873bda?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/816266d852c4595a2bfa578a991fa68bb8ed5e0217f3565158ca20c139873bda?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/816266d852c4595a2bfa578a991fa68bb8ed5e0217f3565158ca20c139873bda?s=96&d=mm&r=g\",\"caption\":\"jeanmich\"},\"url\":\"https:\\\/\\\/jm.garreta.eu\\\/blog\\\/author\\\/jeanmich\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cl\u00e9s SSH : la m\u00e9thode s\u00fbre (Ed25519 + passphrase + agent)","description":"Cl\u00e9s SSH = la serrure de ton homelab. Apprends \u00e0 g\u00e9n\u00e9rer des cl\u00e9s Ed25519, prot\u00e9ger la passphrase, organiser tes identit\u00e9s et g\u00e9rer ssh-agent pour garder le contr\u00f4le.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/","og_locale":"fr_FR","og_type":"article","og_title":"Cl\u00e9s SSH : la m\u00e9thode s\u00fbre (Ed25519 + passphrase + agent)","og_description":"Cl\u00e9s SSH = la serrure de ton homelab. Apprends \u00e0 g\u00e9n\u00e9rer des cl\u00e9s Ed25519, prot\u00e9ger la passphrase, organiser tes identit\u00e9s et g\u00e9rer ssh-agent pour garder le contr\u00f4le.","og_url":"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/","og_site_name":"Le blog de Jean-Mich","article_published_time":"2026-07-22T16:34:24+00:00","article_modified_time":"2026-07-22T16:34:25+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/jm.garreta.eu\/blog\/wp-content\/uploads\/2026\/07\/featured-917.png","type":"image\/png"}],"author":"jeanmich","twitter_misc":{"\u00c9crit par":"jeanmich","Dur\u00e9e de lecture estim\u00e9e":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/#article","isPartOf":{"@id":"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/"},"author":{"name":"jeanmich","@id":"https:\/\/jm.garreta.eu\/blog\/#\/schema\/person\/04d6a1c8008585cd30b5f0016770f7cb"},"headline":"Cl\u00e9s SSH : arr\u00eate de les g\u00e9n\u00e9rer n\u2019importe comment","datePublished":"2026-07-22T16:34:24+00:00","dateModified":"2026-07-22T16:34:25+00:00","mainEntityOfPage":{"@id":"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/"},"wordCount":1760,"commentCount":0,"image":{"@id":"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/#primaryimage"},"thumbnailUrl":"https:\/\/jm.garreta.eu\/blog\/wp-content\/uploads\/2026\/07\/featured-917.png","keywords":["ed25519","homelab","rgpd","s\u00e9curit\u00e9","ssh"],"articleSection":["Informatique"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/","url":"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/","name":"Cl\u00e9s SSH : la m\u00e9thode s\u00fbre (Ed25519 + passphrase + agent)","isPartOf":{"@id":"https:\/\/jm.garreta.eu\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/#primaryimage"},"image":{"@id":"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/#primaryimage"},"thumbnailUrl":"https:\/\/jm.garreta.eu\/blog\/wp-content\/uploads\/2026\/07\/featured-917.png","datePublished":"2026-07-22T16:34:24+00:00","dateModified":"2026-07-22T16:34:25+00:00","author":{"@id":"https:\/\/jm.garreta.eu\/blog\/#\/schema\/person\/04d6a1c8008585cd30b5f0016770f7cb"},"description":"Cl\u00e9s SSH = la serrure de ton homelab. Apprends \u00e0 g\u00e9n\u00e9rer des cl\u00e9s Ed25519, prot\u00e9ger la passphrase, organiser tes identit\u00e9s et g\u00e9rer ssh-agent pour garder le contr\u00f4le.","breadcrumb":{"@id":"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/#primaryimage","url":"https:\/\/jm.garreta.eu\/blog\/wp-content\/uploads\/2026\/07\/featured-917.png","contentUrl":"https:\/\/jm.garreta.eu\/blog\/wp-content\/uploads\/2026\/07\/featured-917.png","width":1536,"height":1024,"caption":"Cl\u00e9s SSH : la serrure de ton homelab, \u00e0 s\u00e9curiser avec Ed25519 et une passphrase"},{"@type":"BreadcrumbList","@id":"https:\/\/jm.garreta.eu\/blog\/cles-ssh-generer-nimporte-comment-ed25519-passphrase-agent\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/jm.garreta.eu\/blog\/"},{"@type":"ListItem","position":2,"name":"Cl\u00e9s SSH : arr\u00eate de les g\u00e9n\u00e9rer n\u2019importe comment"}]},{"@type":"WebSite","@id":"https:\/\/jm.garreta.eu\/blog\/#website","url":"https:\/\/jm.garreta.eu\/blog\/","name":"Le blog de Jean-Mich","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jm.garreta.eu\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/jm.garreta.eu\/blog\/#\/schema\/person\/04d6a1c8008585cd30b5f0016770f7cb","name":"jeanmich","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/816266d852c4595a2bfa578a991fa68bb8ed5e0217f3565158ca20c139873bda?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/816266d852c4595a2bfa578a991fa68bb8ed5e0217f3565158ca20c139873bda?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/816266d852c4595a2bfa578a991fa68bb8ed5e0217f3565158ca20c139873bda?s=96&d=mm&r=g","caption":"jeanmich"},"url":"https:\/\/jm.garreta.eu\/blog\/author\/jeanmich\/"}]}},"_links":{"self":[{"href":"https:\/\/jm.garreta.eu\/blog\/wp-json\/wp\/v2\/posts\/917","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jm.garreta.eu\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jm.garreta.eu\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jm.garreta.eu\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jm.garreta.eu\/blog\/wp-json\/wp\/v2\/comments?post=917"}],"version-history":[{"count":2,"href":"https:\/\/jm.garreta.eu\/blog\/wp-json\/wp\/v2\/posts\/917\/revisions"}],"predecessor-version":[{"id":923,"href":"https:\/\/jm.garreta.eu\/blog\/wp-json\/wp\/v2\/posts\/917\/revisions\/923"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jm.garreta.eu\/blog\/wp-json\/wp\/v2\/media\/919"}],"wp:attachment":[{"href":"https:\/\/jm.garreta.eu\/blog\/wp-json\/wp\/v2\/media?parent=917"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jm.garreta.eu\/blog\/wp-json\/wp\/v2\/categories?post=917"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jm.garreta.eu\/blog\/wp-json\/wp\/v2\/tags?post=917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}