You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GPG已缓存密码短语仍要求输入,无人值守解密失败求助

解决GPG无人值守解密pass密码库的问题

核心问题分析

全局启用batch选项会强制GPG拒绝所有输入请求(包括从gpg-agent获取缓存密码的loopback通道);而非batch模式下,GPG会默认调用pinentry程序,即使agent已缓存密码也可能触发交互式输入请求。

具体修复步骤

1. 调整gpg.conf配置

编辑~/.gnupg/gpg.conf,移除全局batch选项,保留以下配置:

use-agent
pinentry-mode loopback

2. 确保gpg-agent配置生效

确认~/.gnupg/gpg-agent.conf已有以下配置(你的现有配置已满足):

default-cache-ttl 600
max-cache-ttl 86400
allow-loopback-pinentry
allow-preset-passphrase
pinentry-program /opt/homebrew/bin/pinentry-mac

重启gpg-agent使配置生效:

gpg-connect-agent reloadagent /bye

3. 执行带参数的解密命令

在无人值守场景下,给gpg命令显式指定--batch和--pinentry-mode loopback参数,而非依赖全局配置:

gpg --batch --pinentry-mode loopback -d ~/.password-store/hostname/file.gpg

4. 适配pass工具的无人值守调用

如果要直接用pass命令实现无人值守,设置环境变量让pass自动传递GPG参数:

export PASSWORD_STORE_GPG_OPTS="--batch --pinentry-mode loopback"
# 之后直接调用pass命令即可
pass hostname/file

额外验证步骤

确认密钥指纹与缓存的密码短语匹配:

gpg-connect-agent "KEYINFO D16778601E81E1B4B4E4F9960C59D191A256F7B9" /bye

若输出包含1,说明agent已正确加载该密钥。

内容的提问来源于stack exchange,提问作者maxipaddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 19:02:45