我已经问过法学硕士,所以如果我能找到一个人来回答我,我将不胜感激。
我导入了我认为正确的公钥:runc.keyring,用于
runc.amd64
二进制文件(我正在查看的版本可以在 here 找到)
因此,当我输入
gpg --list-keys
时,我会看到以下内容:
/home/emmanuel/.gnupg/pubring.kbx
---------------------------------
pub ed25519 2019-06-21 [C]
C9C370B246B09F6DBCFC744C34401015D1D2D386
uid [ unknown] Aleksa Sarai <[email protected]>
sub ed25519 2022-09-30 [S] [expires: 2030-03-25]
sub cv25519 2022-09-30 [E] [expires: 2030-03-25]
sub ed25519 2022-09-30 [A] [expires: 2030-03-25]
pub rsa4096 2016-06-21 [SC] [expires: 2031-06-18]
5F36C6C61B5460124A75F5A69E18AA267DDB8DB4
uid [ unknown] Aleksa Sarai <[email protected]>
uid [ unknown] Aleksa Sarai <[email protected]>
sub rsa4096 2016-06-21 [E] [expires: 2031-06-18]
pub rsa3072 2019-07-25 [SC] [expires: 2025-07-27]
C020EA876CE4E06C7AB95AEF49524C6F9F638F1A
uid [ unknown] Akihiro Suda <[email protected]>
uid [ unknown] Akihiro Suda <[email protected]>
sub rsa3072 2019-07-25 [E] [expires: 2025-07-27]
根据我的研究,我尝试了很多事情,但大多数都是沿着以下路线:
gpg --keyring pubring.kbx --default-key C9C370B246B09F6DBCFC744C34401015D1D2D386 --verify runc.amd64.asc runc.amd64
但是,无论我尝试什么,我都无法强制
gpg
使用我怀疑用于签署此二进制文件的公钥(带有 keyid C9C370B246B09F6DBCFC744C34401015D1D2D386
的公钥),相反,该工具似乎尝试使用另一个密钥,如下所示:
gpg: keyblock resource '/home/emmanuel/.gnupg/pubring.kbx': File exists
gpg: Signature made Mon 07 Oct 2024 11:28:24 PM CEST
gpg: using RSA key C2428CD75720FACDCF76B6EA17DE5ECB75A1100E
gpg: Can't check signature: No public key
不可否认,我发现这些工具非常令人困惑,而且我对它们的工作原理知之甚少。因此,如果您愿意补充您的答案并解释应该阅读哪些内容以便让自己了解这些内容,我将不胜感激!
gpg: Good signature from "Aleksa Sarai <[email protected]>"
GnuPG 是正确的,如果您运行
gpg --list-packets runc.amd64.asc
,您将看到以下内容:
:signature packet: algo 1, keyid 17DE5ECB75A1100E
version 4, created 1728336504, md5len 0, sigclass 0x00
digest algo 8, begin of digest 03 19
hashed subpkt 33 len 21 (issuer fpr v4 C2428CD75720FACDCF76B6EA17DE5ECB75A1100E)
hashed subpkt 2 len 4 (sig created 2024-10-07)
subpkt 16 len 8 (issuer key ID 17DE5ECB75A1100E)
data: [2047 bits]
即这个独立的签名正是由您提到的 RSA 密钥生成的。 签名期间可能出现问题,应该与存储库所有者沟通。