« 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 & 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]] | ||