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

虽然我不认为将密码读入环境变量是安全的, *
我喜欢 Aaron Toponce 的方式(归功于他:https://p Three.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 必须将密码存储在内存中的某个位置,并且它使用您可以查询的设置。它不是环境变量,而是杂种内存。每个有权访问它的人都可以获得该密码。在普通的 Linux 系统上,这是在您的用户下运行的每个程序。当 sysctl kernel.yama.ptrace_scope = 1 时,其他程序都无法访问内存本身。但是,如果攻击者可以以您的用户身份运行代码(如果他破坏了任何程序,他就可以这样做),那么他就可以在您运行 gpg 时获取密码。

相关内容