每次都在pass中重新询问主密码

ecj*_*cjb 2 password gpg password-store

我刚刚开始使用passJason A. Donenfeld 作为密码管理器。

我输入了密码(例如email/username@domain.com)。要检索它,我输入

pass email/username@domain.com
Run Code Online (Sandbox Code Playgroud)

我被问到主密码。但是如果我再次输入pass email/username@domain.com,则不会询问主密码,并且email/username@domain.com在终端中输出密码。

出于安全原因,我想在每次检索密码时询问主密码。我该怎么做?

Kus*_*nda 5

pass使用 GnuPG 来处理加密。最新版本的 GnuPG 使用 GPG 守护进程。此 GPG 守护进程将您的有效身份验证缓存 600 秒 ( default-cache-ttl),如果您在该时间内再次使用 GnuPG,则可能会刷新到另一个 600 秒,最多两个小时 ( max-cache-ttl)。

您有两个选择:

  1. 每次使用后杀死 GPG 代理进程pass。你这样做

    gpgconf --kill gpg-agent
    
    Run Code Online (Sandbox Code Playgroud)
  2. 为 GPG 代理配置“缓存最大生存时间”(记住有效身份验证的最长时间,默认为两个小时)。

    这个数字可以通过改变 GPG 守护进程的配置文件来改变。

    您可以通过将以下行添加到您的~/.gnupg/gpg-agent.conf文件(您可能必须创建此文件)来完成此操作:

    max-cache-ttl 0
    
    Run Code Online (Sandbox Code Playgroud)

    如果 GPG 代理当前正在运行,请确保使用gpgconf如上所示的命令终止它,以确保代理在启动时读取更新的配置文件。

另请参阅gpg-agent手册,特别是该--max-cache-ttl选项的文档(对应于max-cache-ttl配置设置)。该手册还提到了该gpgpconf --kill gpg-agent命令。