我如何查看apt/trusted.gpg文件的内容?

我喜欢将/etc目录下的内容放入git中,这样我就可以看到自动更新所做的更改,以及当出现问题时,我可以回退并找出自上次正常工作以来所做的更改。
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的问题吧?

顺便提一句,关于如何将/etc放入git的示例指令在这里:http://darrendev.blogspot.jp/2011/08/svn-ssh-binfalse-git-etc-etc.html - Darren Cook
有点过度多疑... - papukaija
1@papukaija 谢谢你的编辑!不过我对你的评论持不同意见。除此之外,现在我可以通过说是由于Opera更新造成的改变来将其提交到git中(请看下面回答中的我的评论)。 - Darren Cook
3个回答

$ apt-key list

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

5太棒了,谢谢。然后为了查看差异,我执行了 diff <(apt-key --keyring /etc/apt/trusted.gpg list) <(apt-key --keyring /etc/apt/trusted.gpg~ list) (注意:--keyring 参数需要完整路径)。顺便说一下,实际上我使用的是 meld 而不是 diff。meld 明确地告诉我 Opera 在2013年7月3日添加了第二个密钥。 - Darren Cook

如果您正在使用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

我在努力弄清楚如何使用GnuPG获取公钥文件的信息时,偶然遇到了这个问题。除了Darren尝试过的命令,我也尝试了--fingerprint,但是得到了相同的gpg: error reading key: public key not found错误消息。
在发现答案后,我想用一种更通用的方式来补充Andrew的回答,打印关于任何公钥文件的信息。
$ gpg --with-fingerprint /etc/apt/trusted.gpg

pub  1024D/437D05B5 2004-09-12 Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>
      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) <ftpmaster@ubuntu.com>
      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) <cdimage@ubuntu.com>
      Key fingerprint = 8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1092
pub  1024D/FBB75451 2004-12-30 Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>
      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时,它还会列出指纹。正如上面的示例所示,该选项也可用于打印包含多个密钥的公钥环的指纹。