big*_*ose 91 authentication cache gnupg
GnuPG 可以gpg-agent缓存对私钥的访问。如何在整个用户会话中保持该缓存处于活动状态?
当我解锁 的密钥时gpg-agent,它只会在有限的时间内保持缓存状态。使用 SSH 的代理,我输入一次密码短语,它会在整个会话中保持缓存状态。我希望从gpg-agent.
因此,ssh-agent不受缓存寿命有限的影响。但是gpg-agent限制了缓存生命周期,至少在默认情况下是这样。我怎样才能消除缓存时间的限制从gpg-agent?
Jen*_*rat 124
用户配置(in ~/.gnupg/gpg-agent.conf)只能定义默认和最大缓存持续时间;它不能被禁用。
该default-cache-ttl选项设置最后一次 GnuPG 活动后的超时(以秒为单位)(因此如果您使用它,它会重置),该maximum-cache-ttl选项设置它在输入密码后缓存的时间跨度(以秒为单位)。默认值为 600 秒(10 分钟)default-cache-ttl和 7200 秒(2 小时)maximum-cache-ttl。
将它设置为一年左右——比如说,34560000 秒(400 天)——你应该没问题:
default-cache-ttl 34560000
maximum-cache-ttl 34560000
Run Code Online (Sandbox Code Playgroud)
但是要使此更改生效,您需要通过重新启动 gpg-agent 来结束会话。
如果你想限制你的会话长度,你需要在注销时终止守护进程。这在操作系统之间是非常不同的,所以我指的是另一个包含不同系统提示的问题/答案。
您也可以gpg-agent在登录期间重新启动,但这不会将缓存时间限制为会话长度,而是用户登录。自行决定这是否是您的问题。
在 GnuPG 2.1 及更高版本中,该maximum-cache-ttl选项被重命名为max-cache-ttl没有进一步更改。
Cub*_*anX 23
您需要编辑的文件应该放在: ~\.gnupg\
如果您在 PowerShell 窗口中运行它,它将打开: C:\Users\<UserName>\.gnupg
只需将gpg-agent.conf文件放入您喜欢的任何值即可。
您可以通过运行来验证它:
gpgconf.exe --reload gpg-agentgpgconf.exe --list-options gpg-agent您也可以使用这种衬垫:
Set-Content -Path ~\.gnupg\gpg-agent.conf -Value "default-cache-ttl 86400$([System.Environment]::NewLine)max-cache-ttl 86400"
在旧版本中,该文件位于:
$env:AppData\gnupg( C:\Users\<UserName>\AppData\Roaming\gnupg)
所以如果你找不到它,~\.gnupg\gpg-agent.conf看看那里。
Sup*_*000 15
确保gpg-connect-agent reloadagent /bye在更改配置后重新加载您的 gpg 代理。