Gérer vos mots de passe avec gpg et vim

Créons un fichier chiffré d'exemple:

$ echo 'Mon secret' | gpg -c - > secrets.txt.gpg

-c précise que l'on souhaite utiliser un chiffrement symétrique et - que l'on veut lire le contenu depuis stdout qui dans notre cas est le résultat de la commande echo.

Pour le déchiffrer il suffit d'utiliser la commande:

$ gpg -d secrets.txt.gpg 2> /dev/null
Mon secret

2> /dev/null redirige stderr pour ne garder que le contenu déchiffré.

J'utilise au quotidien le plugin gnupg.vim qui permet d'éditer les fichiers se terminant par l'extension .gpg de manière transparente. Mais on peut aiséement s'en passer.

Pour créer un fichier chiffré, ouvrons le normalement:

vim sercret.txt

Après lui avoir confié nos plus intimes secrets, on en chiffre le contenu comme suit:

:%! gpg -c -

Explications:

  • : entrer en mode commande
  • %! prendre l'ensemble des lignes du fichier les passer à la commande shell et les remplacer par le résultat de cette commande
  • gpg -c - la commande du shell

Il n'y à plus qu'à enregisterer.

Pour le déchiffrer c'est quasiment la même chose:

:%!gpg -d - 2> /dev/null

Et comme on a pas envie de faire tout ça à chaque fois, on ajoute à son vimrc:

if !exists(":EncryptBuffer")
  command EncryptBuffer :%! gpg -c -
endif
if !exists(":DecryptBuffer")
  command DecryptBuffer :%!gpg -d - 2> /dev/null
endif

Il suffit dorénavant de faire :DecryptBuffer ou :EncryptBuffer. Et avec l'autocompletion intégrée de vim, pas besoin de tout écrire.

blogroll

social