我如何查看 apt/trusted.gpg 内部?

我如何查看 apt/trusted.gpg 内部?

我喜欢把内容放在/etcgit 里面,这样我就可以看到自动更新发生了哪些变化,当出现问题时,我就可以回过头来找出自上次工作以来我做了哪些改变。

目前我被告知:

modified:   trusted.gpg
modified:   trusted.gpg~

git diff没用,因为这些是二进制文件。当然我可以签入它们,但这些文件是软件包安全的核心,所以这样做会让我的安全尝试付诸东流!那么,我如何找出发生了什么变化?

作为 root 我尝试过:

cd /etc/apt
gpg -k trusted.gpg

(也尝试过--list-keys--list-public-keys)。它说gpg: error reading key: public key not found

我确信这肯定只是发现要提供给 gpg 的正确参数的问题?

答案1

$ apt-key list

来自文档安全适配

apt-key 是一个用于管理安全 apt 的 gpg 密钥环的程序。密钥环保存在文件 /etc/apt/trusted.gpg 中(不要与相关但不太有趣的 /etc/apt/trustdb.gpg 混淆)。apt-key 可用于显示密钥环中的密钥,以及添加或删除密钥。

答案2

如果您正在使用,gpg -k --keyring <file>请确保指定文件路径,否则 gpg 会假定<file>它位于,~/.gnupg/即使它存在于当前目录中!

以下操作不会按预期进行:

cd /etc/apt
gpg -k --no-default-keyring --keyring trusted.gpg

反而:

cd /etc/apt
gpg -k --no-default-keyring --keyring ./trusted.gpg

答案3

我在尝试弄清楚如何使用 GnuPG 获取有关公钥文件的信息时遇到了这个问题。除了 Darren 尝试的命令外,我也尝试了,--fingerprint但得到了相同的gpg: error reading key: public key not found错误消息。

在找到答案之后,我想我会用一种更通用的方式来补充安德鲁的答案,即打印有关任何公钥文件的信息:

$ gpg --with-fingerprint /etc/apt/trusted.gpg

pub  1024D/437D05B5 2004-09-12 Ubuntu Archive Automatic Signing Key <[email protected]>
      Key fingerprint = 6302 39CC 130E 1A7F D81A  27B1 4097 6EAF 437D 05B5
sub  2048g/79164387 2004-09-12
pub  4096R/C0B21F32 2012-05-11 Ubuntu Archive Automatic Signing Key (2012) <[email protected]>
      Key fingerprint = 790B C727 7767 219C 42C8  6F93 3B4F E6AC C0B2 1F32
pub  4096R/EFE21092 2012-05-11 Ubuntu CD Image Automatic Signing Key (2012) <[email protected]>
      Key fingerprint = 8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1092
pub  1024D/FBB75451 2004-12-30 Ubuntu CD Image Automatic Signing Key <[email protected]>
      Key fingerprint = C598 6B4F 1257 FFA8 6632  CBA7 4618 1433 FBB7 5451

可以看出,上面列出的信息与的输出相同apt-key list– 尽管的格式apt-key更具可读性。

手册gpg页仅说明--with-fingerprint选项应为“与命令相同--fingerprint”,但(对于 GnuPG 1.4.20),当提供文件名而不是密钥 ID 时,它还会列出指纹。如上例所示,此选项还可用于打印包含多个密钥的公共环的指纹。

相关内容