如何处理Gnupg错误:gpg:没有默认密钥:没有密钥gpg:[stdin]:clearsign失败:没有密钥?

Cin*_*lla 8 gnupg

我收到一个错误:

gpg: no default secret key: No secret key
gpg: [stdin]: clearsign failed: No secret key
Run Code Online (Sandbox Code Playgroud)

我的密钥可供GPG使用.

Tim*_*kov 27

如果gpg --list-keys没有返回任何内容,gpg --generate-key则解决问题。


Jia*_*hen 18

这个令人困惑的错误消息浪费了我几天的时间。我将我的 Maven 项目部署到 Maven Central,它一直在工作,但突然它给出了此消息而不提示密码。搜索了所有答案并没有解决我的问题。最终,我发现我的密钥已过期

gpg --list-keys

所以我需要使用来更改过期时间 gpg --edit-key

并确保更新两个密钥。

  • 你是英雄! (7认同)

Din*_*hen 6

gpg1 和 gpg2 之间可能存在差异。密钥以不同的方式存储。你可能两者都有。

尝试

which gpg gpg2
Run Code Online (Sandbox Code Playgroud)

如果两者都有,请运行:

gpg2 --list-secret
gpg --list-secret
Run Code Online (Sandbox Code Playgroud)

您也许可以看出一个有效,另一个无效。


Cin*_*lla 0

答案是:我正在使用最新的 gnupg 版本,但我必须使用 0.44 gnupg 界面版本。我已经重新安装了gnupg。

然后没有发现编译错误。我能够签署我的消息。但无法发送请求。问题是我还没有安装“Useragent”用来发送请求的 LWP::Protocol::Https 模块。(我知道我还没有通过保留简单的打印语句来安装该模块,该语句显示了问题未找到 LWP::Protocol::Https)。所以我通过 cpan 安装了 LWP::Protocol::Https 模块。我很高兴可以走了。终于一切都准备好了:-)