我正在使用 gpg 加密我的电子邮件密码,并将其传递给 msmtp 以便发送电子邮件。
我最初运行gpg --full-gen-key
生成一对密钥。在此过程中,它要求我输入密码。该过程已成功完成。
其次,我通过运行以下命令加密了我的电子邮件密码gpg --encrypt --output ~/.msmtp/msmtp-myaccount-pass.gpg --recipient my@gpg-email -
我配置了 msmtppasswordeval
并尝试发送一封测试邮件。发送时,gpg 要求我输入密码。输入密码后,邮件发送成功。
现在,我想从这个无头 Raspberry Pi 服务器向自己发送系统报告电子邮件,为了做到这一点,我正在构建一个将由 运行的脚本cron
。鉴于服务器将无人值守,密码需要缓存,我明白最安全的方法是使用gpg-agent
。
为了使用gpg-agent
,我需要编辑~/.gnupg/gpg.conf
并添加use-agent
。我还需要编辑gpg-agent.conf
以自定义缓存期限。这就是我陷入困境的地方。
我找不到该文件gpg-conf
,也找不到该文件gpg-agent.conf
。
当我列出.gnupg
目录时,我得到:
drwx------ 2 pi pi 4096 Apr 5 22:11 crls.d
drwx------ 2 pi pi 4096 Apr 5 22:15 openpgp-revocs.d
drwx------ 2 pi pi 4096 Apr 5 22:15 private-keys-v1.d
-rw-r--r-- 1 pi pi 2475 Apr 5 22:15 pubring.kbx
-rw------- 1 pi pi 32 Apr 5 22:11 pubring.kbx~
-rw------- 1 pi pi 600 Apr 5 22:43 random_seed
-rw------- 1 pi pi 1280 Apr 5 22:18 trustdb.gpg
我确认它gpg-agent
正在作为一个进程运行。
我在网上寻找解决方案,有人建议从中复制骨架文件,/usr/share/gnupg
但没有可用的骨架文件,如下所示:
distsigkey.gpg help.de.txt help.fi.txt help.it.txt help.pt_BR.txt help.tr.txt
help.be.txt help.el.txt help.fr.txt help.ja.txt help.ro.txt help.zh_CN.txt
help.ca.txt help.eo.txt help.gl.txt help.nb.txt help.ru.txt help.zh_TW.txt
help.cs.txt help.es.txt help.hu.txt help.pl.txt help.sk.txt sks-keyservers.netCA.pem
help.da.txt help.et.txt help.id.txt help.pt.txt help.sv.txt
gpg-agent
如果您能帮助我配置密码的缓存时间,我将不胜感激。
作为参考,我在 Raspberry Pi 2 Model B 上使用 Raspbian Buster。
提前致谢。
答案1
我找不到文件 gpg-conf 和文件 gpg-agent.conf
没什么大不了的,只要创建它即可。如果没有它,Gnupg 将使用默认选项运行。
如果您想在启动时手动输入密码,然后记住它一段时间,您感兴趣的选项是default-cache-ttl
但这不是唯一的选项:
gpg-agent 可以通过 ~/.gnupg/gpg-agent.conf 文件进行配置。配置选项列在 gpg-agent(1) 中。例如,您可以更改未使用的密钥的缓存 ttl:
~/.gnupg/gpg-agent.conf
默认缓存 TTL 3600
提示:要缓存整个会话的密码,请运行以下命令:
$ /usr/lib/gnupg/gpg-preset-passphrase --preset XXXXX
其中 XXXXX 是 keygrip。运行 gpg --with-keygrip -K 时可以获取其值。密码将保存,直到 gpg-agent 重新启动。如果您设置了 default-cache-ttl 值,它将优先。
来源:基努