Mutt: comment stocker en toute sécurité mot de passe?

52

Mon fichier .muttrc ressemble à ceci ou à un aperçu ci-dessous. Je suis hésitant avec le mot de passe. Comment dois-je stocker mon mot de passe pour l'utiliser mutt?

set imap_user = "[email protected]"
set imap_pass = "password"

set smtp_url = "smtp://[email protected]:587/"
set smtp_pass = "password"
set from = "[email protected]"
set realname = "Your Real Name"
Anthon
la source
4
Dans le message que vous avez lié, j'ai déjà écrit "Assurez-vous que votre ~ / .muttrc n'est pas lisible par tout le monde; il contient votre mot de passe. (Vous pouvez également le laisser de côté et mutt vous le demandera à chaque fois.)" :-)

Réponses:

38

Ce tweak devrait vous débarrasser de votre problème. Utilisez gpg comme suggéré, ou

set imap_pass=`getpassword email_id`

où vous utilisez pwsafe ou des mots de passe pour récupérer les mots de passe.

Edit: Si Mutt est construit avec le support IMAP (--enable-imap), Mutt devrait vous demander le mot de passe si vous ne le définissez pas dans le fichier de configuration. Du manuel:

imap_pass

Type: chaîne Valeur par défaut: ""

Spécifie le mot de passe de votre compte IMAP. Si non défini, Mutt vous demandera votre mot de passe lorsque vous appelez la fonction fetch-mail. Attention: vous ne devriez utiliser cette option que sur une machine relativement sécurisée, car le superutilisateur peut lire votre muttrc même si vous êtes le seul à pouvoir lire le fichier.

Nagul
la source
9
+1 je dois te le demander. Vous ne devriez avoir à y entrer qu'une fois par session.
David Mackintosh
2
De plus, si vous courez à l' muttintérieur tmux, votre session peut durer un certain temps.
Chris W.
Quelle est cette fonction getpassword? Je ne l'ai pas dans mon serveur Ubuntu 14.04.3 LTS (GNU / Linux). Je pense qu'ils sont pwsafeou passwordsmais devrais-je les utiliser? Je souhaite être connecté à mon compte mutt sans mot de passe une fois que je suis connecté au serveur, car le mot de passe du serveur est le même que celui de l'e-mail.
Léo Léopold Hertz
1
Vous pouvez utiliser pass - passwordstore.org. Cet outil peut être utilisé exactement comme décrit dans la réponse ci-dessus. Les mots de passe sont stockés dans le référentiel git chiffré par la clé GPG choisie.
Jakub Jindra
28

Créez un fichier de mots de passe ~/.mutt/passwords:

set imap_pass="password"
set smtp_pass="password"

Ce fichier peut être crypté avec GPG. Commencez par créer une paire de clés publique / privée:

$ gpg --gen-key

Cryptez le fichier de mots de passe:

$ gpg -r [email protected] -e ~/.mutt/passwords
$ ls ~/.mutt/passwords*
/home/user/.mutt/passwords   /home/user/.mutt/passwords.gpg
$ shred ~/.mutt/passwords
$ rm ~/.mutt/passwords

Ajouter à votre muttrc:

source "gpg -d ~/.mutt/passwords.gpg |"

via

Voir aussi l' entrée Arch Wiki's Mutt .

DmitrySandalov
la source
La clé publique dans le fichier de mots de passe ou le script shell devrait-elle? Je pense que le script shell devrait être en .muttrc. Je reçois après avoir exécuté la commande gpg gpg: [email protected]: skipped: public key not found gpg: /u/77/masi/unix/.mutt/passwords: encryption failed: public key not found. Je l'ai fait cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/known_hostsmais cela ne semble pas être le problème. Qu'est-ce que je fais mal?
Léo Léopold Hertz
1
Masi, vous devez avoir une clé GPG (ou PGP), pas votre clé publique SSH. Plus d'informations sur les clés GPG ici: fedoraproject.org/wiki/Creating_GPG_Keys et ici: help.ubuntu.com/community/GnuPrivacyGuardHowto
DmitrySandalov
1
C'est une solution parfaite. Voici mon fichier de configuration pour tous ceux qui ont besoin de référence: github.com/shubhamchaudhary/dotfiles/blob/master/home/.muttrc
Shubham Chaudhary
Je pensais que c'était une bonne solution, mais j'ai ensuite saisi :set imap_passmutt et mon mot de passe a été affiché en texte clair. Cela peut-il être évité? Lorsque Mutt demande le mot de passe imap lui-même, il n'affiche pas le mot de passe caleartext lors de la frappe: set ...
eli
Avez-vous créé votre clé privée GPG sans mot de passe? Sinon, il gpg -dfaudrait un mot de passe. Pourquoi utiliser mot de passe pour crypter un mot de passe lorsque l'objectif est de se connecter sans mot de passe ...
sdaffa23fdsf
3

Pourquoi ne pas utiliser un gestionnaire de portefeuille comme gnome-keyringou kwalletmanageravec secret-tool?

apt install gnome-keyring secret-tool

[néo] muttrc:

source 'echo "$( pw=$( secret-tool lookup user <USERNAME> domain <DOMAIN> ); echo set imap_pass=\"$pw\"; echo set smtp_pass=\"$pw\" )" |'

Conservez votre mot de passe imap et smtp:

secret-tool store --label=imap user <USERNAME> domain <DOMAIN>

Vous pouvez choisir votre propre étiquette si vous le souhaitez.

Recherchez vos crédits à l'aide d'une coquille:

secret-tool lookup user <USERNAME> domain <DOMAIN>

Allumez votre [neo] mutt, connectez-vous et connectez-vous à votre srv imap. Prendre plaisir.

Cette solution présente des avantages par rapport aux solutions basées sur les gpg: elle s’intègre bien et il n’ya plus de fichier supplémentaire à perdre.

Bonus: Utilisation libsecretou directement en gnome-keyringtant que git credential-helpercomme dans git avec libsecret et git avec gnome-keyring . Les deux assistants ont besoin d'une compilation manuelle. Oui, c'est un peu gênant mais cela fonctionne très bien.

Gen.Stack
la source
1

Sur la base du commentaire de ShreevatsaR, je souhaite mettre l’accent sur la sécurité. Si le mot de passe dans $ HOME / .muttrc, faites

chmod go-r $HOME/.muttrc

Cependant, je pense que ce n'est pas encore une option sécurisée. Vous devriez utiliser une méthode qui utilise salt pour stocker les mots de passe.

Léo Léopold Hertz
la source
0

Vous pouvez lire le mot de passe à partir d'un fichier non crypté.

Par exemple, mettez le mot de passe dans ~/secrets/mail_pass:

the_secret_mail_password

ensuite

chmod 600 ~/secrets/mail_pass`

Dans votre muttrc:

# Read the password from a file and set it
set smtp_pass=`cat ~/secrets/mail_pass`
Matthias Braun
la source
C'est juste beaucoup plus facile à chmod 600 ~/.muttrc.
dr01
Si vous conservez vos mots de passe, ~/.muttrcvous ne pourrez pas les publier en les mettant sur GitLab, etc. De plus, si vous utilisez OfflineIMAP, il a également besoin du mot de passe et peut le lire à partir du fichier de mot de passe externe.
Matthias Braun le