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

WSL10中Pass密码管理器报gpg解密失败:No secret key求助

解决WSL中Pass密码管理器解密失败(No secret key)的问题

我之前在Windows 10的WSL环境里折腾Pass+GPG的时候,也碰到过完全一样的「gpg: decryption failed: No secret key」报错,给你几个亲测有效的排查和解决步骤:

  • 确认GPG私钥在WSL中正常识别
    先运行gpg --list-secret-keys,查看你的主密钥是否出现在列表里。如果没有显示,大概率是WSL环境没正确加载私钥:

    • 你可以从Windows的GPG目录(一般是/mnt/c/Users/你的Windows用户名/AppData/Roaming/gnupg/)复制私钥相关文件(比如private-keys-v1.d文件夹或者secring.gpg)到WSL的~/.gnupg/目录下
    • 然后执行gpg --import 私钥文件名(如果是文件夹直接复制的话,可能需要重新刷新密钥:gpg --refresh-keys)
    • 再次运行gpg --list-secret-keys确认密钥已加载
  • 检查GPG Agent环境变量与启动状态
    WSL里GPG Agent的socket路径经常出问题,先运行echo $GPG_AGENT_INFO,如果没有输出,手动启动并配置环境变量:

    gpg-agent --daemon --write-env-file ~/.gpg-agent-info
    source ~/.gpg-agent-info
    export GPG_AGENT_INFO
    

    可以把这几行添加到~/.bashrc或~/.zshrc中,让每次终端启动时自动加载。

  • 验证Pass与GPG密钥的关联
    运行pass init查看当前Pass绑定的密钥ID是否和你的主密钥一致。如果不匹配,重新初始化Pass:

    pass init 你的主密钥ID
    

    密钥ID可以从gpg --list-secret-keys的输出中获取(通常是长ID的后8位)。

  • 修复GPG目录的权限问题
    GPG对~/.gnupg/目录的权限要求非常严格,必须是仅当前用户可读写:

    chmod -R 700 ~/.gnupg/
    chmod 600 ~/.gnupg/*
    

    WSL偶尔会出现权限继承混乱的情况,这一步能解决很多隐性问题。

  • 强制重启GPG Agent并加载配置
    杀掉现有Agent进程后,用指定配置重启:

    pkill gpg-agent
    gpg-agent --daemon --pinentry-program /usr/bin/pinentry-curses --allow-loopback-pinentry --default-cache-ttl 28800
    

    这样会直接加载你之前配置的缓存时间和pinentry程序。

一般按这个顺序排查,就能解决WSL里Pass+GPG的解密问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:12:27