我尝试使用 GPG 对文件进行签名,但有些事情让我感到困惑:如果我在终端中输入(我要签名的文件称为“校验和”),它会显示:
$ gpg -s checksums
You need a passphrase to unlock the secret key for
user: "[my name] <[my email prefix]@gmail.com>"
4096-bit RSA key, ID C457C71D, created 2015-01-16
但是,它不会要求我输入密码,而只是执行签名过程。这是为什么?
GnuPG 用于
gpg-agent
缓存您的密码。它确实需要用于签名的密码(这是一个私钥操作),因此会打印消息,但不需要询问您,因为密码仍被缓存。可以配置缓存是否工作以及工作多长时间。gpg代理
gpg
检查是否有正在运行的gpg-agent
(或者,在较新的版本中,必须启动一个)。gpg-agent
确实(除其他外)在给定时间内缓存您的密码。配置
这个时间跨度可以在中配置
~/.gnupg/gpg-agent.conf
,在我的例子中包含一行将缓存时间设置为十分钟(10*60 秒)。中描述了更多选项
man gpg-agent
,大多数选项也可以gpg-agent.conf
通过省略前导来使用--
。因为有一个gpg代理会缓存你的密码一段时间,所以如果你重复使用gpg,你只需要在第一次输入你的密码,然后它会被记住并在以后的运行中自动使用。