Présentation de "pass"
-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 ?
- 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.
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