mutt один раз запросил пароль, используется как для imap, так и для smtp

mutt один раз запросил пароль, используется как для imap, так и для smtp

Мои пароли для imap и smtp одинаковы, а версия mutt использует интегрированные настройки smtp.

Я не хочу хранить свой пароль в каком-либо скрипте, шифровать его с помощью pgp/openssl или использовать менеджеры паролей кошельков. Также я хочу именно:

  • быть спрошенным только один раз для ввода пароля
  • один и тот же пароль будет использоваться для imap и smtp (чтобы не запрашиваться снова в рамках одного сеанса Mutt)

Каков наилучший способ этого добиться?

Мое уже найденное решение использует следующие строки конфигурации .muttrc:

set imap_pass=`read -s -p 'mail-password : ' mailpass ; echo $mailpass`
set smtp_pass=$imap_pass

и это ~хорошо для моих нужд. Просто потому, что я новичок в mutt, мне интересно, есть ли какой-то лучший способ ...

(... например, использование пропущенных imap_pass и smtp_pass, что приведет к тому, что Mutt запросит imap_pass, а затем каким-то образом убедит Mutt использовать то же самое для smtp).

решение1

хотя я не думаю, что безопасно считывать пароль в переменную окружения, *
мне нравится способ Аарона Топонсе (спасибо ему:https://pthree.org/2012/01/07/encrypted-mutt-imap-smtp-passwords/):

И таким образом, вы можете использовать несколько учетных записей с одним и тем же файлом паролей (но, да, не рекомендуется использовать один и тот же пароль для разных учетных записей)


Только самое необходимое(для объяснения см. ссылку выше):

Сначала я создал файл ~/.mutt/passwords. Файл в виде обычного текста. Перед шифрованием вот его содержимое:

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

Затем я шифрую этот файл с помощью следующей команды:

% 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

Последние две команды гарантируют, что временный файл, созданный вами для шифрования, будет надежно стерт с диска с помощью утилиты GNU Shred. Теперь у вас должен быть только зашифрованный двоичный файл данных, содержащий ваши пароли. Осталось только настроить Mutt на их расшифровку при запуске. Вы можете легко настроить это в вашем Muttrc:

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

обновлять:
* это не в переменной окружения, это в памяти:
цитата:Mutt должен хранить пароль где-то в памяти, и он использует настройку, которую вы можете запросить. Это не переменная окружения, это память Mutt. Каждый, у кого есть к ней доступ, может получить этот пароль. В стандартной системе Linux это каждая программа, запущенная под вашим пользователем. С sysctl kernel.yama.ptrace_scope = 1 никакая другая программа не может получить доступ к самой памяти. Но если злоумышленник может запустить код от вашего пользователя (что он может сделать, если скомпрометирует любую программу), то он может просто перехватить пароль, когда вы запускаете gpg.

Связанный контент