Comment je gère mes mots de passe

Ma gestion des mots de passe est un assemblage savant de plusieurs logiciels : pass, rofi et i3.

Voyons donc comment tout cela s’articule !

pass alias password-store

C’est pass qui est en charge de la gestion des mots de passe à proprement parler. Vous le trouverez sous le nom password-store également mais pour la suite, on se contentera de pass.

pass fait la glu entre plusieurs outils remplissant chacun une fonction bien précise :

  • tree, pour l’affichage de la liste des mots de passe stockés
  • xclip, pour copier un mot de passe dans le presse-papiers
  • pwgen, pour la génération du mot de passe
  • gnupg, pour le chiffrement du mot de passe
  • git, pour le versionnement

Ainsi, lorsqu’on veut ajouter un mot de passe, une seule ligne de commande suffit pour générer, chiffrer et versionner ce mot de passe :

$ pass generate Banque/compte-en-ligne -c 12

Ici, un mot de passe de 12 caractères sera généré, puis stocké et chiffré dans un fichier compte-en-ligne situé dans le dossier Banque et enfin copié dans le presse-papiers pour être collé instantanément. Cela signifie qu’on peut créé des mots de passe et les utiliser sans jamais les avoir vu. Pour retrouver le mot de passe déjà créé, il faut simplement utiliser la commande :

$ pass Banque/compte-en-ligne

Le tout étant chiffré par gnupg, une phrase secrète est nécessaire au déchiffrement de tous les mots de passe. Pour ma part, j’ai créé une clé gpg exprès pour ce besoin. Cette clé est uniquement présente sur mon ordinateur principal et sans elle, pas moyen d’accéder à mes mots de passe.

À ce stade-là, certaines personnes vont me dire «C’est nul ton truc, t’es obligé de dégainer un terminal et taper des commandes pour accéder à tes mots de passe ?». Bien. La suite va leur plaire ;)

rofi, le menu à tout faire

J’ai découvert il y a peu rofi, une sorte de couteau suisse pour lancer des commandes, changer de fenêtre, etc etc. Les possibilités sont nombreuses et évoquées sur le site du logiciel. J’utilise rofi pour lancer des commandes mais également pour récupérer un mot de passe stocké par pass. Pour cela, j’ai un peu bidouillé la configuration de mon gestionnaire de fenêtres, i3.

Bidouillons donc i3 et pass

Pour arriver à afficher les mots de passe pour naviguer dans la liste et en sélectionner un, pass fourni un script nommé passmenu. Il faut d’abord le mettre dans un endroit où il sera exécutable :

# cp /usr/share/doc/pass/examples/dmenu/passmenu /usr/local/bin/

puis le modifier légèrement pour qu’il utilise rofi à la place de dmenu :

password=$(printf '%s\n' "${password_files[@]}" | rofi -location 3 -hlbg "#FF6000" -dmenu -p "pass:" "$@")

Ceci fait, il reste à dire à i3 de lancer ce script passmenu lorsqu’on tape la séquence adéquate au clavier et donc éditer le fichier .i3/config pour ajouter :

bindsym $mod+Shift+p exec passmenu

Et voilà, le tour est joué. Vous n’avez plus qu’à relancer i3 et tester.

Exemple de résultat