« Unix pass » : différence entre les versions
| (4 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
== Introduction == | |||
=== '''1. À quoi sert le paquet <code>pass</code> ?''' === | |||
* <code>pass</code> est le '''gestionnaire de mots de passe Unix'''. | |||
* Il stocke tes mots de passe dans des fichiers texte '''chiffrés avec GPG'''. | |||
* Chaque entrée est un fichier <code>.gpg</code> dans <code>~/.password-store</code>. | |||
* Il fournit des commandes simples : | |||
** <code>pass insert service/login</code> → ajoute un mot de passe | |||
** <code>pass show service/login</code> → affiche le mot de passe | |||
** <code>pass git ...</code> → versionne le store avec Git | |||
----- | |||
=== '''2. À quoi sert le paquet <code>gnupg</code> ?''' === | |||
* <code>gnupg</code> (GNU Privacy Guard) est l’outil qui gère la '''cryptographie'''. | |||
* Il permet de : | |||
** Générer des '''paires de clés''' (publique/privée). | |||
** Chiffrer/déchiffrer les fichiers. | |||
* <code>pass</code> utilise GPG pour '''chiffrer les mots de passe''' avec ta clé publique et les déchiffrer avec ta clé privée. | |||
----- | |||
=== '''3. Leur utilisation complémentaire''' === | |||
* <code>pass</code> '''ne chiffre rien par lui-même''' → il délègue à <code>gnupg</code>. | |||
* Workflow : | |||
*# Tu crées une clé GPG (<code>gpg --gen-key</code>). | |||
*# Tu dis à <code>pass</code> quelle clé utiliser (<code>pass init <ID_clé></code>). | |||
*# Chaque mot de passe est stocké dans un fichier <code>.gpg</code> chiffré avec cette clé. | |||
----- | |||
=== '''4. Est-ce un équivalent à KeePass ?''' === | |||
* Oui, '''fonctionnellement''', <code>pass</code> est une alternative à KeePass : | |||
** KeePass = base de données chiffrée (format <code>.kdbx</code>). | |||
** <code>pass</code> = arborescence de fichiers chiffrés GPG. | |||
* Différences : | |||
** KeePass → interface graphique, multiplateforme, plugins. | |||
** <code>pass</code> → CLI, très Unix, intégration Git native. | |||
* Avantage de <code>pass</code> : | |||
** '''Simplicité''', '''portabilité''', '''intégration Git'''. | |||
* Avantage de KeePass : | |||
** '''UI conviviale''', '''plugins''', '''multi-device sans config complexe'''. | |||
== 🔐 1. <code>pass</code> – Le gestionnaire de mots de passe Unix == | == 🔐 1. <code>pass</code> – Le gestionnaire de mots de passe Unix == | ||
| Ligne 20 : | Ligne 69 : | ||
<ul> | <ul> | ||
<li><p>'''Ajouter un mot de passe''' :</p> | <li><p>'''Ajouter un mot de passe''' :</p> | ||
<syntaxhighlight lang="bash">pass insert perso/site-web</syntaxhighlight> | |||
ou | |||
<syntaxhighlight lang="bash">pass add perso/site-web</syntaxhighlight> | <syntaxhighlight lang="bash">pass add perso/site-web</syntaxhighlight> | ||
<p>→ tape ton mot de passe quand demandé</p></li> | <p>→ tape ton mot de passe quand demandé</p></li> | ||
| Ligne 25 : | Ligne 76 : | ||
<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 : == | == 🔐 2. Commandes pratiques (compatibles Debian 13) pour : == | ||
| Ligne 112 : | Ligne 162 : | ||
<syntaxhighlight lang="bash">gpgconf --reload gpg-agent</syntaxhighlight> | <syntaxhighlight lang="bash">gpgconf --reload gpg-agent</syntaxhighlight> | ||
== Script pour configurer et visualiser gpg‑agent == | == 🔐 3. Script pour configurer et visualiser gpg‑agent == | ||
(avec '''paramètre d’entrée''') | (avec '''paramètre d’entrée''') | ||
| Ligne 124 : | Ligne 174 : | ||
=== Script : <code>pass-ttl-check.sh</code> === | === Script : <code>pass-ttl-check.sh</code> === | ||
<pre> | |||
Ce script vérifie l’état de gpg-agent et ses TTL (durées de cache), et permet de définir de nouvelles valeurs pour default-cache-ttl et max-cache-ttl dans gpg-agent.conf puis de recharger l’agent pour les appliquer immédiatement. | |||
</pre> | |||
<blockquote>Installe-le, par exemple dans <code>~/bin/pass-ttl-check.sh</code>, puis :<br /> | <blockquote>Installe-le, par exemple dans <code>~/bin/pass-ttl-check.sh</code>, puis :<br /> | ||
<code>chmod +x ~/bin/pass-ttl-check.sh</code> | <code>chmod +x ~/bin/pass-ttl-check.sh</code> | ||
| Ligne 285 : | Ligne 337 : | ||
* '''<code>gpg-agent</code> / <code>gpgconf</code>''' (lecture/écriture des options, reload de l’agent): la gestion des TTL se fait côté agent et s’observe via <code>gpgconf --list-options gpg-agent</code>, rechargée via <code>gpgconf --reload gpg-agent</code>. [https://man.archlinux.org/man/pass.1.en.raw [man.archlinux.org]] | * '''<code>gpg-agent</code> / <code>gpgconf</code>''' (lecture/écriture des options, reload de l’agent): la gestion des TTL se fait côté agent et s’observe via <code>gpgconf --list-options gpg-agent</code>, rechargée via <code>gpgconf --reload gpg-agent</code>. [https://man.archlinux.org/man/pass.1.en.raw [man.archlinux.org]] | ||
== Complément == | |||
Utlisation de <code>dirmngr</code> et <code>pinentry-tty</code> | |||
----- | |||
=== '''1. <code>dirmngr</code>''' === | |||
* '''Rôle :'''<br /> | |||
<code>dirmngr</code> est un composant de GnuPG qui gère les '''connexions réseau pour les clés'''.<br /> | |||
Il sert principalement à : | |||
** Télécharger des clés publiques depuis des '''serveurs de clés''' (HKP, LDAP). | |||
** Vérifier les '''CRL''' (listes de révocation). | |||
** Gérer la communication avec des services externes (par exemple pour la validation des certificats). | |||
* '''Pourquoi utile avec <code>pass</code> ?'''<br /> | |||
Si tu veux importer une clé GPG distante ou vérifier sa validité, <code>dirmngr</code> est nécessaire. Sans lui, <code>gpg --recv-keys</code> ne fonctionne pas. | |||
----- | |||
=== '''2. <code>pinentry-tty</code>''' === | |||
* '''Rôle :'''<br /> | |||
<code>pinentry</code> est le programme qui affiche la '''boîte de dialogue pour saisir ton mot de passe GPG''' (passphrase).<br /> | |||
Il existe plusieurs variantes : | |||
** <code>pinentry-gtk</code> → interface graphique. | |||
** <code>pinentry-curses</code> → interface en mode texte. | |||
** <code>pinentry-tty</code> → '''pur terminal''', idéal pour les scripts ou containers sans UI. | |||
* '''Pourquoi utile avec <code>pass</code> ?'''<br /> | |||
Quand tu fais <code>pass insert</code> ou <code>pass show</code>, GPG doit déchiffrer avec ta clé privée → il te demande la passphrase.<br /> | |||
<code>pinentry-tty</code> permet cette saisie directement dans le terminal. | |||
----- | |||
✅ '''En résumé :''' | |||
* <code>dirmngr</code> = communication réseau pour clés GPG. | |||
* <code>pinentry-tty</code> = saisie sécurisée de la passphrase dans le terminal. | |||
[[Catégorie: Terminal Tools]] [[category:Linux]] | [[Catégorie: Terminal Tools]] [[category:Linux]] | ||