« Unix pass » : différence entre les versions

Aucun résumé des modifications
Ligne 25 : Ligne 25 :
<li><p>'''Lister les entrées''' : <code>bash    pass ls</code></p></li>
<li><p>'''Lister les entrées''' : <code>bash    pass ls</code></p></li>
<li><p>'''Supprimer une entrée''' : <code>bash    pass rm perso/site-web</code></p></li></ul>
<li><p>'''Supprimer une entrée''' : <code>bash    pass rm perso/site-web</code></p></li></ul>
== 🔐 2. Commandes pratiques (compatibles Debian 13) pour : ==
# '''Voir les TTL effectifs de gpg‑agent'''
# '''Vérifier que l’agent tourne''' (ou le lancer si besoin)
-----
=== 1) Afficher les TTL effectifs (default &amp; current) ===
<syntaxhighlight lang="bash"># Affiche les valeurs "default" et "current" vues par gpg-agent
gpgconf --list-options gpg-agent \
| awk -F: '/^default-cache-ttl|^max-cache-ttl/ {printf "%-20s default=%s  current=%s\n",$1,$7,$10}'</syntaxhighlight>
* <code>default-cache-ttl</code> : durée par défaut (en secondes) de mise en cache de ta passphrase.
* <code>max-cache-ttl</code> : durée maximale (plafond) autorisée.
<blockquote>Si aucune « current » n’est définie dans la conf utilisateur, ce seront les '''valeurs par défaut''' de GnuPG: typiquement '''600 s''' (10min) pour <code>default-cache-ttl</code> et '''7200 s''' (2h) pour <code>max-cache-ttl</code>.<br />
Tu peux aussi vérifier ce que tu as explicitement configuré :
</blockquote>
<syntaxhighlight lang="bash">grep -E '^(default|max)-cache-ttl' "$HOME/.gnupg/gpg-agent.conf" || echo "Aucun TTL défini dans gpg-agent.conf (valeurs par défaut appliquées)"</syntaxhighlight>
<blockquote>Référence: la conf du cache TTL est gérée par '''gpg-agent''', pas par <code>pass</code> lui‑même (voir la doc man de pass et gpg-agent).
</blockquote>
-----
=== 2) Vérifier que gpg‑agent tourne (et obtenir son socket) ===
==== Méthode simple (et idempotente) ====
<syntaxhighlight lang="bash"># Lance l’agent si besoin (sans créer de doublons), ne produit pas d’erreur si déjà lancé
gpgconf --launch gpg-agent
# Récupère le chemin du socket
SOCK="$(gpgconf --list-dirs agent-socket)"
echo "Socket gpg-agent: $SOCK"
# Vérifie que le socket existe
ls -l "$SOCK"</syntaxhighlight>
==== Tester la communication avec l’agent ====
<syntaxhighlight lang="bash"># Interroge l'agent (retourne la version si OK)
gpg-connect-agent 'GETINFO version' /bye</syntaxhighlight>
==== (Optionnel) Voir le/les processus ====
<syntaxhighlight lang="bash">pgrep -a gpg-agent || echo "Aucun processus gpg-agent visible (il peut être auto-spawn via le socket)"</syntaxhighlight>
<blockquote>Points à connaître dans un '''container Docker''' :
* <code>gpgconf --launch gpg-agent</code> et <code>gpg-connect-agent</code> suffisent : gpg-agent est '''auto‑démarré à la demande''' via le socket UNIX, même sans systemd.
* Si tu utilises <code>pinentry-mode loopback</code> (fréquent en CI/container), pense à l’option <code>--pinentry-mode=loopback</code> côté GnuPG/<code>gpg</code> et/ou à configurer <code>allow-loopback-pinentry</code> dans <code>gpg-agent.conf</code>.
</blockquote>
-----
=== Bonus : remettre à jour l’agent après modification des TTL ===
Si tu modifies <code>~/.gnupg/gpg-agent.conf</code> :
<syntaxhighlight lang="bash">gpgconf --reload gpg-agent
# puis re-vérifie :
gpgconf --list-options gpg-agent | awk -F: '/^default-cache-ttl|^max-cache-ttl/ {printf "%-20s default=%s  current=%s\n",$1,$7,$10}'</syntaxhighlight>
Le délai avant que <code>pass show</code> te redemande la '''passphrase GPG''' dépend du '''cache d’agent GPG''' (gpg-agent), pas de <code>pass</code> lui-même.
=== Par défaut : ===
* '''gpg-agent''' garde la passphrase en mémoire pendant '''600 secondes (10 minutes)''' après la dernière utilisation.
* Ce délai est contrôlé par les paramètres :
** <code>default-cache-ttl</code> (par défaut 600 s)
** <code>max-cache-ttl</code> (par défaut 7200 s = 2 h)
Ces paramètres se trouvent dans le fichier :
<pre>~/.gnupg/gpg-agent.conf</pre>
=== Pour vérifier ou modifier : ===
Ajoute par exemple :
<pre>default-cache-ttl 3600      # 1 heure
max-cache-ttl 7200          # 2 heures</pre>
Puis recharge l’agent :
<syntaxhighlight lang="bash">gpgconf --reload gpg-agent</syntaxhighlight>


[[Catégorie: Terminal Tools]] [[category:Linux]]
[[Catégorie: Terminal Tools]] [[category:Linux]]