Présentation de "pass"

- Blogue Dernière modif.

Pass est un gestionnaire de mots de passe en ligne de commande qui se dit suivre la philosophie UNIX (“fais un truc et fais le bien”, en gros), ce n’est qu’un scripte Bash de 700 lignes qui utilise GnuPG pour le chiffrement des mots de passe.

Ça a l’avantage qu’il est petit, utilise des programmes déjà existent dans le système et facile à utiliser dans des scriptes !

Installation

Utilisez le gestionnaire de paquets de votre distro, et installez le paquet pass (ou password-store, parfois).

Premiers pas

Création d’une clé GnuPG

GnuPG est un logiciel qui permet de chiffré des fichiers et utilisé des signatures cryptographique, pour l’utiliser il faut d’abord générer une paire de clés, une publique et une privé.

La clef publique permet à vous et au autres de chiffrer des donnés, la clef privé sert dé-chiffré les donné chiffré avec la clef publique correspondante. Comme son nom l’indique, la clef privé est seulement pour vos yeux et il faut faire attention à ne pas la révéler.

GnuPG est un sujet à part entière, donc je ne vais pas vous faire un tuto entier dans cet article, juste un micro-tuto pour généré un pair de clefs. Mais si vous voulez utiliser pass, il va falloir plonger dedans un minimum.

Entrez la commande :

gpg --full-generate-key

Laissez les options par défaut, et entrez vos informations :

GnuPG doit construire une identité pour identifier la clef.
Nom réel : Jacques Chirac
Adresse électronique : chirac@example.com
Commentaire : Mangez des pommes
Vous avez sélectionné cette identité :
    « Jacques Chirac (Mangez des pommes) <chirac@example.com> »
Changer le (N)om, le (C)ommentaire, l'(A)dresse électronique
ou (O)ui/(Q)uitter ?
Note :
  • L’adresse e-mail n’a pas besoin d’être une vrai, elle va juste servir d’identifiant pour la clef
  • Le commentaire est optionnel

Entrez une phrase de passe pour votre clef, et voilà !

Initialisation du dossier pass

Pour commencer, initialisez le dossier ~/.password-store.

pass init chirac@example.com

Maintenant, en entrant la commande pass elle vous listera vos mots de passe… C’est à dire aucun, vu qu’on a rien mis dedans.

Note :

L’emplacement du dossier peut être réglé avec la variable d’environement PASSWORD_STORE_DIR.

Ajouter, supprimer et affichier des mots de passe

Pour ajouté un mot de passe, utilisez l’argument insert suivis du nom du mot de passe.

pass insert wanadoo

pass va maintenant vous demander de taper votre mot de passe et de le confirmer. Vous avez maintenant un mot de passe dans votre liste ! Vous pouvez l’afficher avec pass show wanadoo ou tout simplement pass wanadoo.

~ $ pass
Password Store
└── wanadoo
~ $ pass wanadoo
mot_de_passe

Si vous voulez le supprimer, utilisez l’argument rm.

~ $ pass rm wanadoo
Are you sure you would like to delete wanadoo? [y/N] y
'~/.password-store/wanadoo.gpg' supprimé

Vous pouvez créer un mot de passe aléatoire avec l’argument generate. Par défaut, elle génère un mot de passe de 25 caractères, mais on peux préciser la taille qu’on veux à la fin.

~ $ pass generate wanadoo 32
The generated password for wanadoo is:
VE|6$p-EGu;q/?i(|bGi$K|*Z%k@I;I8

Attributs supplémentaire

Une entrée peut aussi contenir deviers informations, comme un pseudo, une adresse email, etc. Ils éxistent dans le fichier d’un mot de passe sous forme de attribut: valeur de l'attribut.

Pour ajouter des attributs à un mot de passe, on peut soit l’ouvrir dans un éditeur de texte avec la commande edit et les écrires:

pass edit wanadoo

Ou, utiliser l’option -m/--multiline lors de la création du mot de passe :

mot_de_passe
Username: jacqueschirac
Email: jacqueschirac@wanadoo.fr
URL: wanadoo.fr/*

Maintenant, on peut afficher l’attribut d’un mot de passe grep par example:

~ $ pass show wanadoo | grep Email
Email: jacqueschirac@wanadoo.fr

BONUS: Pour avoir l’attribut sans son nom :

my_pass=$(pass show wanadoo | grep Email)
echo ${my_pass##*: }
jacqueschirac@wanadoo.fr