<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
    <title>Tournesol - linux</title>
    <link rel="self" type="application/atom+xml" href="https://tournesol.me/tags/linux/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://tournesol.me"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-05-02T00:00:00+00:00</updated>
    <id>https://tournesol.me/tags/linux/atom.xml</id>
    <entry xml:lang="fr">
        <title>Remplacer son mot de passe utilisateur par une tape</title>
        <published>2026-05-02T00:00:00+00:00</published>
        <updated>2026-05-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            Tournesol
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://tournesol.me/blog/fido2-pam-u2f/"/>
        <id>https://tournesol.me/blog/fido2-pam-u2f/</id>
        
        <content type="html" xml:base="https://tournesol.me/blog/fido2-pam-u2f/">&lt;h1 id=&quot;introduction&quot;&gt;Introduction&lt;&#x2F;h1&gt;
&lt;p&gt;J’ai récemment fait joujou avec les clés physique FIDO2 pour &lt;a href=&quot;https:&#x2F;&#x2F;tournesol.me&#x2F;blog&#x2F;fido2-resident-ssh-key&#x2F;&quot;&gt;héberger mes clés SSH&lt;&#x2F;a&gt; et je dévérouille mes disques chiffrés par LUKS avec.&lt;&#x2F;p&gt;
&lt;p&gt;Aujourd’hui, on va utiliser ces clés pour s’éviter à rentrer son mot de passe utilisateur et permettre de ne faire qu’une tappe sur la clé pour dévérouiller nos sésames.
Pourquoi ? Car j’avais pris l’habitude d’avoir un mot de passe cours et peu complexe pour ne pas passer 20 ans à chaque utilisation de sudo. Normalement c’est pas un soucis mais ça me semblait étrange de chiffrer mon disque dur alors que la majorité du temps, je n’éteins même pas mon ordinateur. Donc si j’ai un vol, ils peuvent “brute-force” ma session utilisateur tant que le pc reste allumé.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;authentification-pour-les-sessions-utilisateurs&quot;&gt;Authentification pour les sessions utilisateurs&lt;&#x2F;h1&gt;
&lt;p&gt;Pour ça on remercie Yubico qui fournissent le package &lt;strong&gt;requit&lt;&#x2F;strong&gt; &lt;code&gt;pam-u2f&lt;&#x2F;code&gt; (ou &lt;code&gt;libpam-u2f&lt;&#x2F;code&gt;).&lt;&#x2F;p&gt;
&lt;h2 id=&quot;ajoutez-les-cles&quot;&gt;Ajoutez les clés&lt;&#x2F;h2&gt;
&lt;p&gt;Dans un terminal en tant que l’utilisateur qui utilisera ces clés :&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#3C3836, #EBDBB2); background-color: light-dark(#F9F5D7, #1D2021);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#B57614, #FABD2F);&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#8F3F71, #D3869B);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#8F3F71, #D3869B);&quot;&gt;p&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#79740E, #B8BB26);&quot;&gt; ~&#x2F;.config&#x2F;Yubico&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#928374, #928374);font-style: italic;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#928374, #928374);font-style: italic;&quot;&gt; Première clé&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#B57614, #FABD2F);&quot;&gt;pamu2fcfg&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#8F3F71, #D3869B);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#8F3F71, #D3869B);&quot;&gt;i&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#79740E, #B8BB26);&quot;&gt; pam:&#x2F;&#x2F;tournesol&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#427B58, #8EC07C);&quot;&gt; &amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#79740E, #B8BB26);&quot;&gt; ~&#x2F;.config&#x2F;Token2&#x2F;u2f_keys&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#928374, #928374);font-style: italic;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#928374, #928374);font-style: italic;&quot;&gt; Les suivantes (notez l&amp;#39;option -n qui sont nécessaires)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#B57614, #FABD2F);&quot;&gt;pamu2fcfg&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#8F3F71, #D3869B);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#8F3F71, #D3869B);&quot;&gt;i&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#79740E, #B8BB26);&quot;&gt; pam:&#x2F;&#x2F;tournesol&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#8F3F71, #D3869B);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#8F3F71, #D3869B);&quot;&gt;n&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#427B58, #8EC07C);&quot;&gt; &amp;gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#79740E, #B8BB26);&quot;&gt; ~&#x2F;.config&#x2F;Token2&#x2F;u2f_keys&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;blockquote class=&quot;markdown-alert-note&quot;&gt;
&lt;p&gt;Il est recommandé de rajouter &lt;code&gt;-i pam:&#x2F;&#x2F;tournesol&lt;&#x2F;code&gt; (remplacer mon nom par tout ce vous voulez) mais ce n’est pas nécessaire. Seulement, par défaut, le nom donné est la variable &lt;code&gt;$HOSTNAME&lt;&#x2F;code&gt; qui risque donc de changer si vous changez de hostname.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h3 id=&quot;verifiez-alwaysuv&quot;&gt;Vérifiez &lt;em&gt;alwaysUv&lt;&#x2F;em&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;De plus en plus de clés viennent avec &lt;em&gt;alwaysUv&lt;&#x2F;em&gt; d’activé par défaut.
Si cette option est activée, vous ne pourrez pas utiliser les clés pour vous authentifier de la manière décrite sur cette page.&lt;&#x2F;p&gt;
&lt;p&gt;Concrétement, cette option requiert de rentrer le code PIN de la clé à chaque utilisation, même si on vous le demande pas.
De ce que je comprends, désactiver &lt;em&gt;alwaysUv&lt;&#x2F;em&gt;, permets uniquement à toutes personnes qui mets la main sur une de vos clés FIDO2 de les utiliser pour toute application qui ne demande pas le code PIN.&lt;&#x2F;p&gt;
&lt;p&gt;Vérifiez et modifiez son état en utilisant une app géstion de clés FIDO2.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;utiliser-ces-cles-pour-l-authentification&quot;&gt;Utiliser ces clés pour l’authentification&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;attention&quot;&gt;ATTENTION&lt;&#x2F;h3&gt;
&lt;blockquote class=&quot;markdown-alert-warning&quot;&gt;
&lt;p&gt;Éditer les fichiers dans &lt;code&gt;&#x2F;etc&#x2F;pam.d&#x2F;&lt;&#x2F;code&gt; peut vous verrouiller en dehors de votre système&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;À chaque édition des fichiers dans &lt;code&gt;&#x2F;etc&#x2F;pam.d&#x2F;&lt;&#x2F;code&gt;, sauvegardez mais NE FERMEZ PAS LE FICHIER. Confirmez dans un nouveau terminal que vous avez toujours vos accès.
Vous pouvez utiliser le package &lt;code&gt;pamtester&lt;&#x2F;code&gt; pour faire vos vérifications.
Vous pouvez aussi ouvrir une session root avant de faire une modification de sorte à toujours pouvoir retourner en arrière si vous avez une erreur.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;sudo&quot;&gt;sudo&lt;&#x2F;h3&gt;
&lt;p&gt;Ajoutez en première ligne :&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#3C3836, #EBDBB2); background-color: light-dark(#F9F5D7, #1D2021);&quot;&gt;&lt;code data-lang=&quot;plain&quot; data-name=&quot;&#x2F;etc&#x2F;pam.d&#x2F;sudo&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;auth            sufficient      pam_u2f.so cue [cue_prompt=Tap key…] authfile=.config&#x2F;Yubico&#x2F;u2f_keys origin=pam:&#x2F;&#x2F;tournesol&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Faites attention à remplacer &lt;em&gt;tournesol&lt;&#x2F;em&gt; par le bon nom.&lt;&#x2F;p&gt;
&lt;p&gt;Si vous voulez que vos clés soient vos seules méthodes pour utiliser sudo, vous pouvez commenter les lignes qui suivent ainsi que remplacer &lt;em&gt;sufficient&lt;&#x2F;em&gt; par &lt;em&gt;required&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;login-gdm&quot;&gt;login GDM&lt;&#x2F;h3&gt;
&lt;p&gt;À la suite des lignes &lt;em&gt;auth&lt;&#x2F;em&gt;, rajouter :&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#3C3836, #EBDBB2); background-color: light-dark(#F9F5D7, #1D2021);&quot;&gt;&lt;code data-lang=&quot;plain&quot; data-name=&quot;&#x2F;etc&#x2F;pam.d&#x2F;gdm-password&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;auth            required      pam_u2f.so nouserok authfile=.config&#x2F;Yubico&#x2F;u2f_keys origin=pam:&#x2F;&#x2F;tournesol&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Notez l’utilisation de &lt;em&gt;nouserok&lt;&#x2F;em&gt; qui permets à la régle d’échouer si l’utilisateur n’a pas de clés configurées. Cela permets un setup à plusieurs utilisateurs sans rendre l’utilisation de ces clés obligatoires.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;ma-methode-bourin-system-auth&quot;&gt;Ma méthode bourin : system-auth&lt;&#x2F;h3&gt;
&lt;p&gt;Les solutions précédentes sont utiles pour sélectionner quels services permettront l’utilisation des clés. Je n’ai pas trouvé pas trouvé de source qui parlent d’utiliser &lt;code&gt;&#x2F;etc&#x2F;pam.d&#x2F;system-auth&lt;&#x2F;code&gt;, j’imagine car c’est une solution trop bourrine mais j’ai testé avec gdm, sudo, le dialogue de 1password.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#3C3836, #EBDBB2); background-color: light-dark(#F9F5D7, #1D2021);&quot;&gt;&lt;code data-lang=&quot;plain&quot; data-name=&quot;&#x2F;etc&#x2F;pam.d&#x2F;system-auth&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-auth      [success=3 default=ignore]  pam_systemd_home.so&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;auth       [success=2 default=ignore]  pam_u2f.so cue [cue_prompt=Tap key…] nouserok authfile=.config&#x2F;Yubico&#x2F;u2f_keys origin=pam:&#x2F;&#x2F;tournesol&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;auth       [success=1 default=bad]     pam_unix.so          try_first_pass nullok&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;auth       [default=die]               pam_faillock.so      authfail&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;blockquote class=&quot;markdown-alert-note&quot;&gt;
&lt;p&gt;le numéro de &lt;em&gt;success&lt;&#x2F;em&gt; est important. Vérifiez qu’il est décroissant à partier de la ligne de &lt;em&gt;pam_systemd_home.so&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h1 id=&quot;references&quot;&gt;Références&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;Page du wiki Arch Linux : &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;wiki.archlinux.org&#x2F;title&#x2F;Universal_2nd_Factor#Authentication_for_user_sessions&quot;&gt;Universal 2nd Factor&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Documentation officielle de pam-u2f : &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;developers.yubico.com&#x2F;pam-u2f&#x2F;#examples&quot;&gt;pam-u2f&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Guide de Token2 : &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.token2.com&#x2F;site&#x2F;page&#x2F;using-token2-fido2-security-keys-for-linux-local-authentication&quot;&gt;Using Token2 FIDO2 Security keys for Linux local authentication&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
</feed>
