尽管我自己签署了密钥,但有效性未知

Luc*_*Luc 9 gpg pgp

该密钥目前的有效性未知:

$ gpg --edit-key some.user

pub  rsa4096/FAC6C35BDFF9359A
     created: 2020-03-01  expires: 2022-03-01  usage: SC  
     trust: full          validity: unknown
sub  rsa4096/CDA6BEA851FFCE2E
     created: 2020-03-01  expires: 2022-03-01  usage: E   
[ unknown] (1). Some User <some.user@example.org>
Run Code Online (Sandbox Code Playgroud)

有效性是根据签名计算的。“至少一个完全信任的密钥必须签署另一个密钥才能使密钥有效。” 由于我最终信任自己的密钥,这意味着如果我签署某个用户的密钥,它也应该变得有效。

我已经签署了该用户的密钥:

$ gpg --list-signatures some.user
pub   rsa4096 2020-03-01 [SC] [expires: 2022-03-01]
      E9E7BDF5FB135FF9858ABAAAB007FDB2
uid           [ unknown] Some User <some.user@example.org>
sig 3        FAC6C35BDFF9359A 2020-03-01  Some User <some.user@example.org>
sig          12CA169A2B5A5CFC 2020-03-15  Luc <luc@example.org>
sig 3        FAC6C35BDFF9359A 2021-03-01  Some User <some.user@example.org>
sub   rsa4096 2020-03-01 [E] [expires: 2022-03-01]
sig          FAC6C35BDFF9359A 2020-03-01  Some User <some.user@example.org>
sig          FAC6C35BDFF9359A 2021-03-01  Some User <some.user@example.org>
Run Code Online (Sandbox Code Playgroud)

密钥的过期时间最近通过命令(由某些用户自己)延长了gpg --edit-keyexpire但我无法重新签名(而且我无法判断这是否有必要,没有资源对此有任何说明,所以我猜不是):

$ gpg --edit-key some.user
gpg> sign
"Some User <some.user@example.org>" was already signed by key 12CA169A2B5A5CFC
Nothing to sign with key 12CA169A2B5A5CFC
Run Code Online (Sandbox Code Playgroud)

检查签名,我没有发现任何异常:

$ gpg --check-sigs some.user
pub   rsa4096 2020-03-01 [SC] [expires: 2022-03-01]
      E9E7BDF5FB135FF9858ABAAAB007FDB2
uid           [ unknown] Some User <some.user@example.org>
sig!3        FAC6C35BDFF9359A 2020-03-01  Some User <some.user@example.org>
sig!         12CA169A2B5A5CFC 2020-03-03  Luc <luc@example.org>
sig!3        FAC6C35BDFF9359A 2021-03-01  Some User <some.user@example.org>
sub   rsa4096 2020-03-01 [E] [expires: 2022-03-01]
sig!         FAC6C35BDFF9359A 2020-03-01  Some User <some.user@example.org>
sig!         FAC6C35BDFF9359A 2021-03-01  Some User <some.user@example.org>

gpg: 5 good signatures
Run Code Online (Sandbox Code Playgroud)

为什么该密钥无效?
我是否需要以某种方式重新签名,也许首先撤销我的旧签名?

Ste*_*itt 7

有效性未知意味着 GnuPG 尚未计算该密钥的信任网,因此它不知道该密钥是否有效。对于新添加的密钥总是如此,但对于更新的密钥也可能发生这种情况(因为签名的更改可能会影响您与密钥的连接)。即使在微不足道的情况下,信任重新计算也不一定会自动发生,因为它们可能很昂贵并且可能需要用户输入。

\n

更新信任数据库应该可以解决这个问题;您可以运行最小更新

\n
gpg --check-trustdb\n
Run Code Online (Sandbox Code Playgroud)\n

或更完整的更新(可能涉及回答有关您对密钥所有者的信任程度的问题)

\n
gpg --update-trustdb\n
Run Code Online (Sandbox Code Playgroud)\n

(文档说,对于--check-trustdb, \xe2\x80\x9c 通常,GnuPG 会在需要时计算并自动执行,除非--no-auto-check-trustdb设置了。\xe2\x80\x9d 但我不\xe2\x80\x99t 知道计算是什么。 )

\n