github:PGP密钥使用标志不允许签名

cwe*_*ske 6 git github gnupg pgp

我已经使用我的OpenPGP密钥来签署git提交,但它在github上显示为"未验证":https://github.com/cweiske/jsonmapper/commits/master

签署此密钥的密钥的使用标志不允许签名.

GPG密钥ID:14C85A0824EAF823

GitHub的GPG签名文档只字不提这个错误.

所以我的问题:

  1. 我该如何阅读这些旗帜?
  2. 如何更改密钥以允许代码签名?

Jen*_*rat 6

您可以通过查看--edit-key或 GnuPG 的冒号分隔的 output 的输出来查看您的签名能力。

查看您的密钥,我看到您有一堆过期的子密钥(一些具有签名功能),以及一个设置了签名和认证功能的主密钥。主键的到期时间延长了两次(还可以考虑阅读有关此主题的“OpenPGP 密钥到期是否会增加安全性?”)。

我在这里看到两个可能的问题:

  • GitHub 还没有您的公钥的最新副本。因此,发出签名的密钥不被视为签名密钥,因为它对 GitHub 来说似乎已过期。尽管如此,错误消息是一个糟糕的消息,GitHub 应该告诉你一个过期的密钥。上传密钥的较新副本应该可以解决问题。
  • GitHub 软件中有一个 bug,它在签名子键存在时忽略主键(无论它们是否过期)。