Pass: utilisation de base et liaision à un repo git

Pass: utilisation de base et liaision à un repo git

Aujourd’hui rapide découverte de l’utilitaire Pass sous GNU/Linux.

Nous allons voir aujourd’hui ce qu’est l’utilitaire pass, de par son mode de fonctionnement, son installation, ses commandes de base, et aussi sa liaison à un repository Git.

Sans plus tarder, commençons !

I) Présentation

Pass est donc un gestionnaire de mots de passe en ligne de commande disponible sous GNU/Linux, BSD, ainsi que certains Unix. Il est aussi disponible en version graphique, via des logiciels comme QTPass par exemple.

Sa particularité est que chaque mot de passe ou entrée est stocké(e) dans un fichier chiffré GPG. De ce fait, on peut dès lors créer des dossiers, des structures, et plus encore. Il peut aussi s’interfacer avec Git et l’on peut donc traquer les différents changements opérés.

II) Installation sous Ubuntu, et création d’un trousseau GPG

Sous Ubuntu à partir de la version 19.04, pass est normalement installé par défaut (si mes souvenirs sont bons !), mais si ce n’est pas le cas, un simple apt install pass -y et le tour est joué.

Avant de commencer à utiliser pass, il convient d’avoir un trousseau de clés GPG. Je ne vais pas ici rentrer dans les détails du fonctionnement de GPG, cela fera sûrement l’objet d’un article entièrement dédié à cela.

Donc, pour créer notre trousseau si vous n’en avez pas encore un :

gpg --full-gen-key

Ensuite, il convient de choisir les paramètres que nous voulons :

Rien de très sorcier, on choisi le type de clef désiré (préférence pour DSA et Elgamal, mais à vous de voir, chaque type se vaut), puis la taille pour les clefs, le temps durant laquelle la clef sera valable, un nom, un email, et c’est à peu près tout. Une passphrase vous sera demandée, puis le trousseau est généré !

Désormais, nous allons pouvoir commencer à jouer avec notre utilitaire pass.

*A noter que sous Ubuntu il existe un utilitaire graphique nommé sobrement Mots de passe et clés, qui vous permet de pouvoir importer/exporter vos clés GPG de manière plus aisée :

III) Initialisation du dépôt et prise en main de passe

Ici, nous allons utiliser Git pour pouvoir traquer les différents changements effectués dans notre pass, pour ce faire, il faut donc utiliser la commande pass init, qui va en premier lieu créer le dossier .password-store à la racine de notre home, c’est ici que seront stockées nos différentes entrées, puis utiliser la commande pass git init pour en faire un repo git. Mais avant, il faut récupérer l’ID de notre clef GPG :

gpg --list-keys

Ici, mon ID est le suivant: 9A39EBB1B1904D1C50D512FE27EA945C976E1B13.

J’initialise donc mon password-store via la commande pass init “9A39EBB1B1904D1C50D512FE27EA945C976E1B13” :

Et enfin, je créer un repo git à l’intérieur de celui-ci via la commande pass git init :

Voilà ! Notre pass est officiellement mis en place. Voyons maintenant quelques commandes de base, et comment ensuite rajouter le dépôt distant pour pouvoir push/pull nos différents commits.

IV) Commandes de base, et git add remote puis git push/pull

Ici je vais aller de manière très succinte, car il s’agit de simples commandes usuelles.

  • Ajouter une entrée dans le pass: pass insert Notamax/administration/it-anthony, où Notamax/administration est un dossier déjà créé ou qui sera nouvellement créé, et it-anthony le nom même de l’entrée ;
  • Afficher le contenu d’une entrée: pass show Notamax/Administration/it-anthony ;
  • Copier le contenu d’une entrée dans le presse-papier pour une durée de 45s: pass -c Notamax/administration/it-anthony ;
  • Éditer une entrée du pass: pass edit Notamax/administration/it-anthony, qui vous ouvrira l’éditeur console par défaut (comme Vim ou nano) ;
  • Supprimer une entrée du pass: pass rm Notamax/administration/it-anthony ;
  • Générer une entrée avec un mot de passe aléatoire: pass generate Web/Froggit/contact@notamax.be ;

Et c’est à peu près tout… en tout cas concernant les commandes de base que vous risquez d’utiliser le plus souvent.

A noter qu’en tapant pass tout simplement, votre arborescence s’affiche, et que lors des différentes commandes pour afficher/copier le contenu d’une entrée, le mot de passe de votre clé PGP vous sera demandé :

Maintenant, voyons comment relier un repo distant à notre repo local, et comment push/pull nos différents commits (ici, une notion de base de Git est fort utile, mais rien de très compliqué pour autant).

Une votre repo créé sur Github/Gitlab/Gitea/Autre, il convient de rajouter son URL à notre repo local :

Rien de très sorcier, on rajoute l’URL du repo distant, on nomme la branche, on renseigne son user/email, puis on push. Comme on peut le voir sur cette capture d’écran, mon premier push n’a pas fonctionné car depuis le 13 août Github nous force à utiliser des personnal access token en lieu et place des traditionnels mot de passe… rien de très compliqué à faire, il vous suffit d’en générer un sur votre compte Github et de l’utiliser comme password. Ensuite, on retente le push et c’est tout bon !

Désormais, admettons que je rajoute une entrée via pass insert, je n’ai qu’à faire la commande pass git push et celle-ci est push sur mon repo distant, idem pour un pass git pull si vous avez rajouter une entrée sur Github directement.

Un des gros avantages d’utiliser git est aussi de pouvoir utiliser pass de manière collaborative… mais ici nous n’irons pas si loin, ce sera -là encore- l’objet d’un futur article 😉

V) Conclusion et rapide explications sur QTPass

Ce premier article sur Pass touchant à sa fin, je vais rapidement vous parler de Qtpass, qui est un utilitaire graphique permettant d’utiliser pass sans trifouiller à la CLI… pour l’installer, un simple apt install qtpass -y suffit :

Voici un aperçu de son interface, comme vous le voyez tout est relativement aisé, vous pouvez créer des dossiers/entrées via les boutons en haut à gauche, et il convient simplement de cocher la case Use git dans les paramètres de l’application. Vous pouvez même faire en sorte d’automatiquement push/puller vos changements, mais faites tout de même attention si vous utilisez ces options !

Sur ce, j’espère comme d’habitude vous avoir appris quelques astuces voir plus, et vous souhaite une bonne journée/soirée!

A la revoyure !

Laisser un commentaire