问题描述
这些年来,我已经使用Travis-CI为我的项目向Maven Central发布了一些版本。最新版本是2个月前,我像往常一样进行。
但是今天,由于某种原因,我遇到了这个错误,而我没有更改设置:
"gpg: no default secret key: unusable secret key"
经过一番研究,我意识到我的钥匙已经过期了。所以我发现很少的资源可以解释如何更新到期日期。我将日期推后了2年,现在在我的机器上,列出密钥时我已经知道了,所以看起来还可以:
然后,我发布密钥,但未收到任何错误消息(因此我认为它运行正常):
最后,我再次触发失败的travis-ci构建,但是我仍然遇到相同的错误。
我在实际部署之前添加了一些命令以获取更多信息-实际上,我的密钥仍然被视为已过期:
还有什么我可以尝试检查我的更新密钥是否正确发布,并且Travis-ci可以得到它?
解决方法
帮助我进行调查的一件事:我们可以通过http://pool.sks-keyservers.net上的基本Web界面在服务器上检查我们的密钥-它确认我的密钥没有在那里更新。
我尝试了一些其他命令,根据在这里和那里可以找到的内容发送密钥:
- gpg -v --keyserver hkp://pool.sks-keyservers.net --send-key MY_KEY
- gpg -v --keyserver hkp://hkps.pool.sks-keyservers.net --send-key MY_KEY
- gpg -v --keyserver hkps://hkps.pool.sks-keyservers.net --send-key MY_KEY
其中一个必须有所作为,因为即使原来的仍然存在,我现在看到的是更新的到期日期。
最后,我更新了travis-ci文件以运行这两个命令:
gpg -v --keyserver hkp://p80.pool.sks-keyservers.net:80 --refresh-keys
gpg -v --list-keys
在签署工件之前,我得到了我的密钥已更新的确认