Unix pass
🔐 1. pass – Le gestionnaire de mots de passe Unix
✅ Avantages :
- 100perso.kdbx% CLI
- Chiffrement avec GPG
- Compatible Git (versionnage)
- Très léger et scriptable
🔧 Installation :
sudo apt-get install pass gnupg
gpg --full-generate-key
gpg --list-keys
Puis initialise pass : avec pub
pass init "Identité GPG"
🔧 Utilisation :
Ajouter un mot de passe :
pass add perso/site-web
→ tape ton mot de passe quand demandé
Afficher un mot de passe :
bash pass show perso/site-webLister les entrées :
bash pass lsSupprimer une entrée :
bash pass rm perso/site-web
🔐 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)
# 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}'
default-cache-ttl: durée par défaut (en secondes) de mise en cache de ta passphrase.max-cache-ttl: durée maximale (plafond) autorisée.
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
default-cache-ttlet 7200 s (2h) pourmax-cache-ttl.
Tu peux aussi vérifier ce que tu as explicitement configuré :
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)"
Référence: la conf du cache TTL est gérée par gpg-agent, pas par
passlui‑même (voir la doc man de pass et gpg-agent).
2) Vérifier que gpg‑agent tourne (et obtenir son socket)
Méthode simple (et idempotente)
# 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"
Tester la communication avec l’agent
# Interroge l'agent (retourne la version si OK)
gpg-connect-agent 'GETINFO version' /bye
(Optionnel) Voir le/les processus
pgrep -a gpg-agent || echo "Aucun processus gpg-agent visible (il peut être auto-spawn via le socket)"
Points à connaître dans un container Docker :
gpgconf --launch gpg-agentetgpg-connect-agentsuffisent : gpg-agent est auto‑démarré à la demande via le socket UNIX, même sans systemd.- Si tu utilises
pinentry-mode loopback(fréquent en CI/container), pense à l’option--pinentry-mode=loopbackcôté GnuPG/gpget/ou à configurerallow-loopback-pinentrydansgpg-agent.conf.
Bonus : remettre à jour l’agent après modification des TTL
Si tu modifies ~/.gnupg/gpg-agent.conf :
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}'
Le délai avant que pass show te redemande la passphrase GPG dépend du cache d’agent GPG (gpg-agent), pas de pass 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 :
default-cache-ttl(par défaut 600 s)max-cache-ttl(par défaut 7200 s = 2 h)
Ces paramètres se trouvent dans le fichier :
~/.gnupg/gpg-agent.conf
Pour vérifier ou modifier :
Ajoute par exemple :
default-cache-ttl 3600 # 1 heure max-cache-ttl 7200 # 2 heures
Puis recharge l’agent :
gpgconf --reload gpg-agent