我正在尝试从服务器解密文件,我拥有该服务器所需的公钥。 key 环具有密码保护,因此当我尝试解密文件时,它会要求我输入密码。
当我们尝试解密文件时,有没有办法通过传递密码来绕过该密码。
我正在使用 gpg-agent
,其中密码默认缓存 600 秒,由于某种原因,我无法设置 max-cache-ttl
(它没有对我不起作用,我不知道 y) 并且仅适用于该 session 。
现在我想缓存我正在使用gpg-preset-passphrase
的密码。我在 .gnupg/gpg-agent.conf 中将其设置为 gpg-preset-passphrase --preset hex
。我不知道我错过了什么。
有人可以让我知道我在其中缺少什么吗?
最佳答案
我无法绕过密码或 pinentry 屏幕,但我使用 gpg-agent
选项(如 default-cache-ttl
)来设置缓存时间。因此,从第二次尝试开始,pinentry 将检索缓存的密码短语并重置 defaul-cache-ttl
上的计时器。
还有一个称为 max-cache-ttl 的选项,即使在成功检索缓存密码并重置 default-cache-ttl 后,该选项也不会更改其计时器并使计时器过期设置超时后缓存的密码。
例如:如果我将它们都设置为 10 小时(即 36000 秒),如果我在 5 小时后调用解密,则默认将重置其计时器,现在我们还有 10 个小时。但最大值将在最初 10 小时后过期,因此会在 10 小时后删除缓存的密码。
我发现的另一个问题是 gpg-agent 的 session 问题。即,如果我打开一个新 session 并尝试解密,则不会发生这种情况,并且会错误提示 gpg-agent 对于该 session 不可用。我编写了一些 shell 脚本并将其放在 bashrc 上,以便在新 session 启动时立即启动
关于ruby - 如何在使用 gpgme 解密文件时绕过 pinentry(密码屏幕),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8671099/