Mutt: як безпечно зберігати пароль?


52

Мій файл .muttrc виглядає як цей або побачити нижче проблиск. Я вагаюся з паролем. Як я повинен зберігати свій пароль, щоб ним користуватися mutt?

set imap_user = "username@gmail.com"
set imap_pass = "password"

set smtp_url = "smtp://username@smtp.gmail.com:587/"
set smtp_pass = "password"
set from = "username@gmail.com"
set realname = "Your Real Name"

4
У публікації, яку ви пов’язали, я вже писав: "Переконайтеся, що ваш ~ / .muttrc не читається з усього світу; він містить ваш пароль. (Або ви можете залишити їх, і mutt підкаже вам пароль щоразу)." :-)

Відповіді:


38

Ця настройка повинна позбутися вашої проблеми. Використовуйте gpg, як пропонується, або

set imap_pass=`getpassword email_id`

де ви використовуєте pwsafe або паролі для отримання паролів.

Редагувати: Якщо mutt побудований з підтримкою IMAP (--enable-imap), то mutt повинен запропонувати вам пароль, якщо ви не встановите його у конфігураційному файлі. З посібника:

imap_pass

Тип: рядок за замовчуванням: ""

Вказує пароль для вашого акаунта IMAP. Якщо його не встановлено, Mutt запропонує вам ввести пароль, коли ви викликаєте функцію отримання пошти. Попередження: цей параметр слід використовувати лише тоді, коли ви перебуваєте на досить захищеній машині, оскільки суперруєзер може прочитати ваш muttrc, навіть якщо ви єдиний, хто може прочитати файл.


9
+1 запросити вас на багатство. Вам слід вводити його лише один раз за сеанс.
Девід Макінтош

2
Крім того, якщо ви запустите muttвсередині tmux, ваш сеанс може тривати деякий час.
Кріс В.

Що це за функція getpassword? У мене цього немає на моєму сервері Ubuntu 14.04.3 LTS (GNU / Linux). Я думаю , що вони pwsafeабо passwordsале я повинен використовувати їх? Я хотів би, щоб після входу в сервер був мій mutt -account без пароля, оскільки пароль сервера такий самий, як і електронний лист.
Лео Леопольд Герц

1
Ви можете використовувати pass - passwordstore.org Цей інструмент можна використовувати точно так само, як описано у відповіді вище. Паролі зберігаються у сховищі git, зашифрованому вибраним ключем GPG.
Якуб Джіндра

28

Створіть файл паролів ~/.mutt/passwords:

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

Цей файл можна зашифрувати за допомогою GPG. Спочатку створіть пару відкритих / приватних ключів:

$ gpg --gen-key

Зашифруйте файл паролів:

$ gpg -r your.email@example.com -e ~/.mutt/passwords
$ ls ~/.mutt/passwords*
/home/user/.mutt/passwords   /home/user/.mutt/passwords.gpg
$ shred ~/.mutt/passwords
$ rm ~/.mutt/passwords

Додати до свого muttrc:

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

через

Дивіться також запис Mutt Arch Wiki .


Чи повинен публічний ключ у файлі паролів або скрипті оболонки? Я думаю, що сценарій оболонки повинен бути в .muttrc. Я отримую після запуску команди gpg gpg: masi@myuni.fi: skipped: public key not found gpg: /u/77/masi/unix/.mutt/passwords: encryption failed: public key not found. Я це зробив, cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/known_hostsале, здається, це не проблема. Що я роблю неправильно?
Лео Леопольд Герц

1
Масі, вам потрібно мати ключ GPG (або PGP), а не ваш відкритий ключ SSH. Більше інформації про ключі GPG тут: fedoraproject.org/wiki/Creating_GPG_Keys і тут: help.ubuntu.com/community/GnuPrivacyGuardHowto
Дмитро Сандалов

1
Це ідеальне рішення. Ось мій файл конфігурації для всіх, хто потребує посилання: github.com/shubhamchaudhary/dotfiles/blob/master/home/.muttrc
Shubham Chaudhary

Я думав, що це вдале рішення, але потім я набрав :set imap_passmutt і отримав свій пароль, показаний у чіткому тексті. Чи можна цього уникнути? Коли mutt запитує сам пароль IMAP, він не показує пароль календаря під час введення: set ...
eli

Ви створили приватний ключ GPG без пароля? Якщо не gpg -dпотрібен пароль Навіщо використовувати пароль для шифрування пароля, коли мета - без пароля ...
sdaffa23fdsf

3

Чому б не скористатися менеджером гаманця, як-от gnome-keyringабо kwalletmanagerз ним secret-tool?

apt install gnome-keyring secret-tool

. [neo] muttrc:

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

Збережіть пароль імада та smtp:

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

Ви можете вибрати власну етикетку, якщо хочете.

Знайдіть свої кредити за допомогою оболонки:

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

Запустіть [neo] мут, підключіть та увійдіть до свого imp srv. Насолоджуйтесь.

Це рішення має переваги перед gpg-основними: воно добре інтегрується і не залишається додаткових файлів.

Бонус: Використання libsecretабо безпосередньо gnome-keyringяк і git credential-helperв мерзотникові з libsecret і мерзотником з гномом-брелоком . Обидва помічники потребують складання вручну. Так, це трохи незручно, але це чудово працює.


1

На основі коментаря ShreevatsaR я хочу наголосити на безпеці. Якщо пароль у $ HOME / .muttrc, зробіть

chmod go-r $HOME/.muttrc

Однак я вважаю, що це все ще не безпечний варіант. Слід використовувати якийсь метод, який використовує сіль для зберігання паролів.


0

Ви можете прочитати пароль із незашифрованого файлу.

Наприклад, введіть пароль у ~/secrets/mail_pass:

the_secret_mail_password

Тоді

chmod 600 ~/secrets/mail_pass`

У вашому muttrc:

# Read the password from a file and set it
set smtp_pass=`cat ~/secrets/mail_pass`

Це просто набагато простіше chmod 600 ~/.muttrc.
dr01

Якщо ви зберігаєте ваші паролі, ~/.muttrcви не зможете опублікувати їх, розмістивши їх у GitLab тощо. Також, якщо ви використовуєте OfflineIMAP, він також потребує пароля, і він може прочитати його також із зовнішнього файлу паролів.
Маттіас Браун
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.