使用已撤销的GPG密钥

时间:2016-04-21 03:00:12

标签: git gnupg

我一直用GPG密钥“A”签署git提交一段时间。过了一会儿,我决定撤销该密钥并开始使用GPG密钥“B”。我还继续使用键“B”签署新的git提交。

我仍然在本地保留两个键(撤销键“A”和新键“B”)。新的提交是可以的,但我现在遇到的问题是,当使用git log --show-signature查看时,所有使用已撤销密钥“A”签署的旧git提交都会显示红色警告。

以下是这个警告在git log中的显示方式(大多数是尖叫红色):

commit 39a53e42c8856278f481b9035e54eb90d8d2a0b7
gpg: Signature made Sat Aug  1 22:24:38 2015 CEST using RSA key ID 2F7EF26C
gpg: Good signature from "My Name <email1>" [ultimate]
gpg:                 aka "My Name <email2>" [ultimate]
gpg: WARNING: This key has been revoked by its owner!
gpg:          This could mean that the signature is forged.
gpg: reason for revocation: Key is superseded
gpg: revocation comment: New GPG key is used.
gpg: revocation comment: New key fingerprint: C464 17C1 4F7B D54E A082  7090 CAFA 7B1B 2914 ED81
gpg: revocation comment: New key id:          2914ED81
Author: My name <email1>
Date:   Sat Aug 1 22:24:38 2015 +0200

    Improve test helper

是否有一个设置我可以告诉git或gpg这个键仍然“好”且值得信赖,只是我不再使用它了? (我想保留这个旧密钥撤销)

如果gpg(或git)“温和地”表示密钥未被使用而不是建议伪造提交,我会很感激。我可以设置一个安全或信任设置来实现这个目标吗?

1 个答案:

答案 0 :(得分:4)

使用Git 2.11更新2016年第4季度:

git logEX,{{引入了其他状态代码YRERRSIGEXPSIG 1}}和EXPKEYSIG,以便REVKEYSIG的用户获得更多信息 见Verifying signed git commits?

在你的情况下似乎没什么可做的。

was debated in 2010,包括一个有趣的想法作为最佳实践:

  
    
      

每个密钥当然可以有多个电子邮件地址,但每封电子邮件不应该有多个密钥。

    
         

实际上这很常见。
    至少,如果人们试图在旧密钥和新密钥之间进行转换,就会发生这种情况 - 例如,如果他们试图从不太安全的加密算法转变为更安全的加密算法。

  
     

据我所知,管理这些事情的最佳方式是   使用子键。您可以更改子键上的过期时间,然后   最终你可以撤销它,同时保留你的一个主要   签署公钥   确实,定期更改子密钥并使旧密钥过期是个好主意。

看看您是否可以使用subkeys(例如this tutorialthis one):

  

OpenPGP还支持子键,它们与普通键类似,但它们绑定到主键对。子密钥可用于签名或加密   子键的真正有用的部分是它们可以独立于主键被撤销,也可以与它们分开存储。

相关问题