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].

Pass

philosophie UNIX

GnuPG

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 :

plusieurs scripts

Quelques liens

site de pass

GIT

liste de diffusion