2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > maven gpg报错:no default secret key: No secret key signing failed: No secret key

maven gpg报错:no default secret key: No secret key signing failed: No secret key

时间:2021-11-26 16:34:29

相关推荐

maven gpg报错:no default secret key: No secret key signing failed: No secret key

一、问题描述

我这边情况是这样的,原本在A电脑上,通过maven打包安装都是好的,最近新弄了台电脑,然后把A电脑的gpg秘钥通过Kleopatra的方式直接导出来

然后在B电脑上通过Kleopatra导入,整了很久,在IDEA中执行maven install操作一直报如下错误:

gpg: no default secret key: No secret keygpg: signing failed: No secret key

二、解决方法

我这边在网上找了很多的解决方法,以及自己遇到的问题,可自行参考操作下,最终通过gpg命令方式导入导出成功解决。

2.1.证书过期

通过如下方式查看:

gpg --list-keys

gpg: checking the trustdbgpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust modelgpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u/Users/xxx/.gnupg/xxx.gpg-----------------------------pub 2048R/236D3BEFxxxx -12-30 [expired: -12-30]uid xxxx <...@>

注意上面的expired: -12-30,说明该证书有过期时间,此时需要gpg续订过期的密钥对:

第一步:进入密钥编辑

gpg --edit-key 236D3BEFxxxx

236D3BEFxxxx就是上面pub后面的那串字符串。

第二步:延长私钥与公钥的过期时间,并保存修改

gpg> expire将要变更主钥的使用期限。请设定这把密钥的有效期限。0 = 密钥永不过期<n> = 密钥在 n 天后过期<n>w = 密钥在 n 周后过期<n>m = 密钥在 n 月后过期<n>y = 密钥在 n 年后过期密钥的有效期限是?(0) 0密钥永远不会过期 以上正确吗?(y/n)y................gpg: WARNING: Your encryption subkey expires soon.gpg: You may want to change its expiration date too.gpg> key 1......................gpg> expire将要变更子钥的使用期限。请设定这把密钥的有效期限。0 = 密钥永不过期<n> = 密钥在 n 天后过期<n>w = 密钥在 n 周后过期<n>m = 密钥在 n 月后过期<n>y = 密钥在 n 年后过期密钥的有效期限是?(0) 0密钥永远不会过期 以上正确吗?(y/n)y.....................gpg> save

此时就已经修改好了。

2.2.将私钥导入新环境,gpg --list-keys命令输出uid [unknown]

我这边后来又参考了网上的另一种方式方式导入导出

A电脑导出gpg --export-ownertrust > otrust.txtB电脑导入gpg --import-ownertrust < otrust.txt

在执行以下命令时

gpg --list-keys

发现A和B电脑UID输出的东西对不上,A电脑上显示的是

uid [ ultimate ] User <xxx@ >

B电脑上却显示的是

uid [ unknown ] User <xxx@ >

解决方法如下:

GNUPG的信任数据库存储在 ~/.gnupg/trustdb.gpg

您可以使用以下--export-ownertrust选项备份此信任数据库

gpg --export-ownertrust > file.txt

如果导出了密钥,以后又将其导入到新环境中,则信任数据库将不再存在。

gpg --edit-key 236D3BEFxxxxgpg> trustPlease decide how far you trust this user to correctly verify other users' keys(by looking at passports, checking fingerprints from different sources, etc.)请确定您信任该用户的程度,以正确验证其他用户的密钥(通过查看护照、检查不同来源的指纹等)1 = I don't know or won't say (我不知道或不会说)2 = I do NOT trust (我不相信)3 = I trust marginally (我略微相信)4 = I trust fully (我完全信任)5 = I trust ultimately (我最终相信)m = back to the main menu(返回主菜单)Your decision? 5gpg> save

上面两种方式我这边试过后还是不行,一样提示错误。

2.3.通过gpg命令方式导入导出

我这边执行--list-secret-keys命令发现B电脑里面没有输出,而A电脑有输出

gpg --list-keysgpg --list-secret-keys

最终在网上找到了通过命令的方式导出导出的方式解决了

A电脑导出gpg --export 236D3BEFxxxx > public.keygpg --export-secret-key 236D3BEFxxxx > private.keyB电脑导入gpg --import public.keygpg --import private.key

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。