Tips Mutt et GnuPG
J'utilise GnuPG et depuis de longues années, je trainais dans mon .muttrc
des options diverses autant que nombreuses jusqu'à ce que je découvre crypt_use_gpgme. Il ne reste plus alors qu'à indiquer la clef par défaut et quelques préférences pour ne plus avoir que :
- .muttrc
set crypt_autosign=yes set crypt_replysign=yes set crypt_replysignencrypted=yes set crypt_use_gpgme set pgp_sign_as=0x7034D172
plus besoin des options pgp_…_command
.
Si on utilise Mutt avec un backend IMAP ou POP et/ou si on envoie les mails sans passer par daemon local, il faut s'authentifier. Pour ne pas taper de mot de passe à longueur de temps, on peut utiliser imap_pass
, pop_pass
et smtp_pass
. Oui, mais un mot de passe dans un fichier de configuration, saymal©™ ! Utilisons plutôt un script et des variables personnalisées :
- Mutt permet de lancer un script dans sa configuration avec quelque chose comme :
- .muttrc
source "macommande |"
(bien noter le pipe à la fin) et dont la sortie constitue des directives de configuration (commands dans la terminologie Mutt).
- Mutt accepte des variables personnalisées sous réserve qu'elles se nomment
my_…
Pour gérer mes mots de passe, j'utilise passwod store qui stocke les mots de passe dans des fichiers chiffrés avec GnuPG (et versionne le tout avec Git).
Soit donc le script trivial :
- mutt_passwds.sh
#!/bin/sh /bin/echo -n "set my_pass_back1=" && pass show work/back1-mailhost
Dans mon ${HOME}/.muttrc
, plus qu'à ajouter :
- .muttrc
source "~/bin/mutt_passwds.sh |" ... set smtp_url="smtps://account1@server1.at.work" set smtp_pass=$my_pass_back1
Évidemment, rien n'oblige à se limiter à une seule variable my_pass_back1
, par exemple si on utilise les folder hooks mais c'est une autre histoire !
Pour conclure, au lancement Mutt appelle pass(1)
qui lance GnuPG ; comme on a configuré ce dernier pour utiliser un agent et un « pinentry program » (cf. OfflineIMAP et password store), une invite de saisie de la passphrase s'ouvre lorsqu'il est nécessaire.