pass et la gestion gpgesque de vos mots de passe

Pass se définit comme le gestionnaire UNIX standard de mots de passe et comme il le stipule sur son site, la gestion des mots de passe devrait être simple et suivre la philosophie UNIX.

Avec pass, chaque mot de passe est stocké dans un fichier chiffré par GnuPG dont le nom est est le nom du site web ou de la ressource qui requiert ce mot de passe. Ces fichiers chiffrés peuvent être organisés en hiérarchie de dossiers significatifs. Ces derniers pourront être copiés d’ordinateur à ordinateur, et, en général, manipulés à l’aide d’utilitaires de gestion de fichiers classiques.

pass rend la gestion de ces fichiers individuels de mots de passe extrêmement facile. Tous les mots de passe se touvent dans ~/.password-store, et pass fournit quelques commandes sympathiques pour l’ajout, la modification, la génération et la récupération des mots de passe. Il s’agit d’un script shell très court et simple. Il est capable de mettre temporairement votre mot de passe dans le presse-papier et permet optionnellement le suivi des changements des mots de passe en utilisant git.

Vous pouvez modifier le stockage des mots de passe en utilisant les commandes shell Unix ordinaires aux côtés des commandes de pass. Il n’y a pas de formats de fichiers exotiques ou de nouveaux paradigmes à apprendre. Le support de bash complétion est opérationnel de sorte que vous pouvez simplement appuyer sur <TAB> pour saisir les noms et les commandes, idem pour les shells ZSH et Fish (voir le dossier contrib).

La commande pass est largement documentée dans sa page de manuel.

Utiliser la base de données des mots de passe

On peut lister tous les mots de passe se trouvant dans la base de données :

alienus@eos:~$ pass
Password Store
|-- Commerce
|   |-- plop-site.com
|   |-- autre-site.net
|-- Email
|   |-- zx2c4.com
|   |-- gmail.com
|-- Perso
|-- banque
|-- box
|-- mobile

On peut dévoiler le mot de passe :

alienus@eos:~$ pass Email/zx2c4.comsup3rh4x3rizmynam3

Ou le copier dans le presse papier pour 45 secondes :

alienus@eos:~$ pass -c Email/zx2c4.com
Copied Email/zx2c4.com to clipboard. Will clear in 45 seconds.

Il y aura une boite de dialogue de saisie du mot de passe qui utilise gpg-agent.

Nous pouvons ajouter des mots de passe existants au magasin avec insert :

alienus@eos:~$ pass insert Commerce/store_elementaryos
Enter password for Commerce/store_elementaryos: ce t-shirt bleu est trop cool

Cela gère également les mots de passe ou autres données multilignes avec --multiline ou -m, et les mots de passe peuvent être modifiés dans votre éditeur de texte par défaut avec passedit nom-du-pass.

On peut générer de nouveaux mots de passe, l’utilitaire pwgen est utilisé en arrière plan :

alienus@eos: ~$ pass generate Email/jasondonenfeld.com
The generated password to Email/jasondonenfeld.com is:$(-QF&Q=IN2nFBx

Il est possible de générer des mots de passe sans symboles en utilisant -no-symbols ou -n, et on peut le copier dans le presse-papiers au lieu de l’afficher sur la console en utilisant --clip ou -c.

Et bien sûr, les mots de passe peuvent être retirés de la base de données :

alienus@eos:~$ pass rm Email/gmail
Are you sure you want to delete Email/gmail? [y/N] y
"/home/alienus/.password-store/Email/gmail.gpg" supprimé

Si la base de données des mots de passe est un dépôt git, chaque manipulation créera un commit git, vous pouvez synchroniser la base de données en utilisant pass git push et pass git pull qui appellent git push ou git pull sur la base de données.

D’autres exemples se trouvent sur la page de manuel.

Mise en place

pass doit se trouver dans les dépôts de votre distribution. Utilisez donc votre gestionnaire de paquet pour l’installer :

(elementaryOS) $ sudo apt-get install pass
(FreeBSD)      # portmaster -d sysutils/password-store
(...)          ...

Pour commencer, une simple commande initialisera votre base de données avecla clef GPG que vous aurez choisie :

alienus@eos:~$ pass init "alienus@bla.com"
mkdir: création du répertoire "/home/alienus/.password-store"
Password store initialized for alienus

Ici, alienus@bla.com est l’ID de la clé GPG. Vous pouvez utiliser votre clé GPG standard ou une autre créée spécialement pour la base de données.

pass utilise gpg-agent pour demander la phrase de passe. Par exemple, sous ElementaryOS il sera nécessaire de l’installer :

alienus@eos:~$ sudo apt-get install gnupg-agent

Puis, vérifiez que gpg est configuré pour l’utiliser. Éditer le fichier \~/.gnupg/gpg.conf, il doit y avoir :

use-agent

Pour initialiser la base de donnée comme un dépôt git :

alienus@eos:~$ pass git init
Dépôt Git vide initialisé dans /home/alienus/.password-store/.git/alienus@eos:~$ pass git remote add origin kexec.com:pass-store

Si un dépôt git est initialisé, pass crée un git commit chaque fois que la base de données est modifiée.

Changer de logiciel de gestion de mots de passe

Il existe plusieurs scripts vous permettant de convertir votre base de données vers pass.

À savoir :

  • KeepassX
  • Keepass2
  • Figaro’s Password Manager
  • lastpass CSV
  • Ked Password Manager
  • Revelation Password Manager
  • Gorilla

Quelques liens