github: PGP 密钥使用标志不允许签名
github: PGP key usage flags do not allow signing
我已经使用我的 OpenPGP 密钥签署了一个 git 提交,但它在 github 上显示为 "Unverified":https://github.com/cweiske/jsonmapper/commits/master
The usage flags for the key that signed this don't allow signing.
GPG key ID: 14C85A0824EAF823
github gpg signature docs 未提及该错误。
所以我的问题:
- 如何阅读这些标志?
- 如何更改我的密钥以允许代码签名?
你可以看看你的签名能力by either looking at the output of --edit-key
or GnuPG's colon-separated output。
查看您的密钥,我发现您有一堆过期的子密钥(一些具有签名功能)和一个设置了签名和认证功能的主密钥。主键的有效期延长了两次(也可以考虑阅读有关此主题的 "Does OpenPGP key expiration add to security?")。
我在这里看到两个可能的问题:
- GitHub 还没有您的 public 密钥的最新副本。因此,发出签名的密钥不被视为签名密钥,因为它似乎已过期到 GitHub。不过,错误消息是错误的,GitHub 应该告诉您密钥已过期。上传更新的密钥副本应该可以解决问题。
- GitHub 软件中存在一个错误,导致它在签名子密钥存在时忽略主密钥(无论它们是否过期)。
我已经使用我的 OpenPGP 密钥签署了一个 git 提交,但它在 github 上显示为 "Unverified":https://github.com/cweiske/jsonmapper/commits/master
The usage flags for the key that signed this don't allow signing.
GPG key ID: 14C85A0824EAF823
github gpg signature docs 未提及该错误。
所以我的问题:
- 如何阅读这些标志?
- 如何更改我的密钥以允许代码签名?
你可以看看你的签名能力by either looking at the output of --edit-key
or GnuPG's colon-separated output。
查看您的密钥,我发现您有一堆过期的子密钥(一些具有签名功能)和一个设置了签名和认证功能的主密钥。主键的有效期延长了两次(也可以考虑阅读有关此主题的 "Does OpenPGP key expiration add to security?")。
我在这里看到两个可能的问题:
- GitHub 还没有您的 public 密钥的最新副本。因此,发出签名的密钥不被视为签名密钥,因为它似乎已过期到 GitHub。不过,错误消息是错误的,GitHub 应该告诉您密钥已过期。上传更新的密钥副本应该可以解决问题。
- GitHub 软件中存在一个错误,导致它在签名子密钥存在时忽略主密钥(无论它们是否过期)。