我已点击以下链接: Mutt:如何安全地存储密码?
不知道我错过了什么,但没有按照我需要的方式工作。这是我注意到的
当我进入 shell 提示符并输入 mutt 时,它会弹出一个屏幕供我输入密码,一旦输入密码,邮件客户端就会弹出,我可以毫无问题地发送和接收电子邮件。如果我关闭它并再次执行它,它不会要求输入密码,但是如果我完全关闭并 ssh 返回到服务器并输入 mutt ,它会要求输入密码。
我试图完成的是对密码进行加密,这样当我运行 cronjob 时就不会出现任何问题,并且不会被要求输入密码。有人可以帮助我让它发挥作用吗?
答案1
有几种不同的选项具有不同的安全级别,因此让我们概述一些选项,以便您做出最佳决定。为了自动解密,密码必须存储在某个地方(在磁盘上、内存中或另一台机器上)。通常值得考虑:
- 谁有权使用该机器?
- 它是否可公开访问或托管可公开访问的服务?
选项1:将未加密的电子邮件密码存储在 muttrc 文件中。
将 muttrc 的读取权限限制为运行 cron 的用户,并加密底层文件系统。由于您使用的是 Gmail,创建应用程序密码如果受到威胁,可以轮换/撤销。这可能是解决该问题最简单的方法。
此解决方案的缺点是,root
用户或任何具有sudo
权限的人都可以访问此文件。您可以配置sudo
为需要密码以帮助减少这种可能性。
选项2:将未加密的 gpg 密码存储在文件中。
对于此选项,您将 mutt 配置为以非交互方式运行 gpg。应限制 mutt 密码和 gpg 密码文件的读取访问权限。您还应该加密底层文件系统以防止物理访问。这只会增加在 muttrc 中存储未加密的密码的模糊性。同样的缺点也存在,并且该解决方案将被认为同样安全。
要让非交互式用户运行 gpg,您需要使用以下命令运行 gpg 命令:
--batch
禁用交互模式--passphrase-file
为 gpg 私钥提供密码--pinentry-mode loopback
将 pinentry 查询重定向回调用者。
所以,在 mutttrc 中:
source "/usr/local/bin/gpg -d --batch --passphrase-file=$HOME/.passFile.txt --pinentry-mode loopback $HOME/.mutt/passwords.gpg |"
选项 3:使用机密管理服务。
这个领域不存在真正的标准,并且有这个空间有很多选择。秘密管理服务集中管理秘密,提供大规模秘密访问的审计和控制。优点和缺点将根据您的部署和实施而变化,并且进一步深入这个领域将主要基于意见。
此外,这是另一个问题这很大程度上涉及可能有帮助的问题领域。