记住某些进程的 gpg 密码

记住某些进程的 gpg 密码

我使用 GNU 的密码存储(pass)来保存我的所有密码,包括我的电子邮件密码。我在我的 GPG 密钥上设置了一个密码,然后它会被记住gpg-agent一个小时。我还有一个 cron 作业,可以定期提取我的电子邮件,并使用pass.

这意味着 cron 作业仅在我输入密码时才起作用,以便gpg-agent记住密码。否则 cron 作业将失败。

我希望始终记住这个 cron 作业的密码,但不记住其他进程的密码。有办法这样做吗?

处理此类用例的正确方法是什么?我很想把密码全部删除。

答案1

您无需删除所有密钥的密码。然而,gpg-agent 并没有被设计为对不同的密钥有多种设置。因此,我认为你最好的选择是创建一个与不同的 gpg 密钥关联的额外密码存储,而无需密码,并将其用于你的 cron 作业。

基本上,cronjob_key在密码存储中创建一个新目录(例如 ),一个gpg --full-generate-key不带密码短语的新密钥( ),并将该目录设置为 中的路径pass init -p cronjob-key [GPG-ID]

您可以对旧密钥应用相同的过程,并具有以下目录结构:

|-- old_key
|   |-- .gpg-id
|-- cronjob_key
    |-- .gpg-id

现在您可以为每个密码存储生成新密码:pass generate cronjob_key/service2 16pass generate old_key/service1 16

|-- old_key
|   |-- .gpg-id
|   `-- service1.gpg
`-- cronjob_key
    |-- .gpg-id
    `-- service2.gpg  -> this one doesn't require passphrase

您需要假设,如果您的计算机受到威胁,那么攻击者将可以使用此“无密码”密钥访问服务。为了方便地实现 cronjobs 的自动化,您必须愿意做出这种权衡。这相当于使用大多数网络服务中可用的 cookie,因此接受它作为可行的替代方案应该不难。

相关内容