如何验证ASC密钥指纹?


15

目前,我正在尝试检查我从http://www.virtualbox.org/wiki/Linux_Downloads下载的oracle_vbox.asc密钥的指纹:它们提供了密钥和指纹,但是没有用于查看此信息的说明。我。

如何显示刚刚下载的密钥的指纹?

apt-key finger oracle_vbox.asc 显示所有受信任密钥的指纹,这不是我想要的。

Answers:


19

获取密钥:

$ wget http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc

使用GPG版本1打印密钥指纹:

$ gpg --with-fingerprint oracle_vbox.asc 
pub  1024D/98AB5139 2010-05-18 Oracle Corporation
                      (VirtualBox archive signing key) <info@virtualbox.org>
      Key fingerprint = 7B0F AB3A 13B9 0743 5925  D9C9 5442 2A4B 98AB 5139
sub  2048g/281DDC4B 2010-05-18
      Key fingerprint = 27B0 97CF 8257 4209 C434  8D42 B674 8A65 281D DC4B

请注意,第二指纹只是子密钥的指纹。

使用GPG版本2打印指纹:

$ gpg2 -n -q --import --import-options import-show  oracle_vbox.asc   
pub   dsa1024 2010-05-18 [SC]
      7B0FAB3A13B907435925D9C954422A4B98AB5139
uid   Oracle Corporation (VirtualBox archive signing key) <info@virtualbox.org>
sub   elg2048 2010-05-18 [E]

请注意,这-n是的别名--dry-run,即密钥实际上并未导入。

或者,仅显示指纹:

$ gpg2 -nq --import --import-options import-show --with-colons oracle_vbox.asc \
     | awk -F: '$1 == "fpr" { print $10 }'
7B0FAB3A13B907435925D9C954422A4B98AB5139
27B097CF82574209C4348D42B6748A65281DDC4B

有没有不使用的类似命令gpg吗?我的意思是,在SSH中,我可以这样做cat ./id_rsa.pub | awk '{print $2}' | base64 -d | md5sum,它将返回一个MD5哈希值,它等于的指纹哈希值ssh -lf ./id_rsa.pub。使用GPG公钥是否有类似的方法?
user3019105 2015年

2
@ user3019105,不,没有。PGP公钥的格式稍微复杂一些。有关详细信息,请参见RFC 4880和GPG源代码。
maxschlepzig

RFC说(关于MD5弃用的指纹):在The fingerprint of a V3 key is formed by hashing the body (but not the two-octet length) of the MPIs that form the key material (public modulus n, followed by exponent e) with MD5.给定ASCII Armor(Radix-64)公钥文件的情况下,我不能获得此MPI的主体吗?
user3019105 2015年

@ user3019105,可以。您可以复制GPG中已实现的内容。但是,这种命令行比您为ssh公钥发布的命令行要复杂得多。因此,这不会是相似的。
maxschlepzig 2015年

好的,谢谢,但是我仍然需要找出如何获得body of the MPIs that form the key materialRFC讨论的内容
user3019105 2015年

5

步骤1

$ deb http://download.virtualbox.org/virtualbox/debian artful contrib

第2步

$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -

第三步

$ apt-key list

或者,等效地,

$ apt-key finger

应该返回

/etc/apt/trusted.gpg
--------------------
pub   rsa4096 2016-04-22 [SC]
      B9F8 D658 297A F3EF C18D  5CDF A2F6 83C5 2980 AECF
uid           [ unknown] Oracle Corporation (VirtualBox archive signing key) <info@virtualbox.org>
sub   rsa4096 2016-04-22 [E]

反过来应该等于

oracle_vbox_2016.asc的密钥指纹为

B9F8 D658 297A F3EF C18D  5CDF A2F6 83C5 2980 AECF
Oracle Corporation (VirtualBox archive signing key) <info@virtualbox.org>

https://www.virtualbox.org/wiki/Linux_Downloads上,通过目视检查或进一步的命令行fu进行。


相关链接:


这个问题缺少一些解释...
含糊不清的

0

您既有钥匙又有指纹?跑:

ssh-keygen -lf key.pub

拿钥匙来获取指纹。

ssh-keygen参考:http : //www.manpagez.com/man/1/ssh-keygen/


3
ssh-keygen无法将“ oracle_vbox.asc”识别为公钥文件。
阿曼达

我的错误,命令应该是“ ssh-keygen -lf”您仍然收到错误消息吗?
mvario 2011年

4
这是行不通的。
maxschlepzig 2012年

ssh-keygen -lf oracle_vbox_2016.asc oracle_vbox_2016.asc不是公共密钥文件。
Scott Stensland '16

2
ssh-keygen不适用于PGP密钥。
杰弗里

0

这适用于GPG 2(至少我可以使用版本2.1.18和进行检查2.2.12):

wget http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc
gpg_home=$(mktemp -d)
gpg --homedir "$gpg_home" --import oracle_vbox.asc
# gpg: keybox '/tmp/tmp.CHoWuJBy7N/pubring.kbx' created
# gpg: /tmp/tmp.CHoWuJBy7N/trustdb.gpg: trustdb created
# gpg: key 54422A4B98AB5139: public key "Oracle Corporation (VirtualBox archive signing key) <info@virtualbox.org>" imported
# gpg: Total number processed: 1
# gpg:               imported: 1
gpg --homedir "$gpg_home" --list-keys
# /tmp/tmp.CHoWuJBy7N/pubring.kbx
# -------------------------------
# pub   dsa1024 2010-05-18 [SC]
#       7B0FAB3A13B907435925D9C954422A4B98AB5139
# uid           [ unknown] Oracle Corporation (VirtualBox archive signing key) <info@virtualbox.org>
# sub   elg2048 2010-05-18 [E]
# 

资料来源:https : //unix.stackexchange.com/a/468889

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.