当前位置: 首页 > 知识库问答 >
问题:

如何在不导入的情况下显示gpg密钥详细信息?

漆雕修能
2023-03-14

我有一个postgresql apt存储库gpg密钥的副本,希望查看文件中gpg密钥的详细信息。在不导入钥匙圈的情况下,这是可能的吗?

共有1个答案

宗翔宇
2023-03-14

在查看OpenPGP关键数据时,您可以获得几个详细级别:基本摘要、此摘要的机器可读输出或单个OpenPGP数据包的详细(非常技术性)列表。

对于OpenPGP密钥文件的短暂峰值,您可以简单地通过stdin将文件名作为参数或管道在密钥数据中传递。如果没有传递命令,GnuPG会尝试猜测您想要做什么--对于关键数据,这是在关键字上打印一个摘要:

$ gpg a4ff2279.asc
gpg: WARNING: no command supplied.  Trying to guess what you mean ...
pub   rsa8192 2012-12-25 [SC]
      0D69E11F12BDBA077B3726AB4E1F799AA4FF2279
uid           Jens Erat (born 1988-01-19 in Stuttgart, Germany)
uid           Jens Erat <jens.erat@fsfe.org>
uid           Jens Erat <jens.erat@uni-konstanz.de>
uid           Jens Erat <jabber@jenserat.de>
uid           Jens Erat <email@jenserat.de>
uid           [jpeg image of size 12899]
sub   rsa4096 2012-12-26 [E] [revoked: 2014-03-26]
sub   rsa4096 2012-12-26 [S] [revoked: 2014-03-26]
sub   rsa2048 2013-01-23 [S] [expires: 2023-01-21]
sub   rsa2048 2013-01-23 [E] [expires: 2023-01-21]
sub   rsa4096 2014-03-26 [S] [expires: 2020-09-03]
sub   rsa4096 2014-03-26 [E] [expires: 2020-09-03]
sub   rsa4096 2014-11-22 [A] [revoked: 2016-03-01]
sub   rsa4096 2016-02-24 [A] [expires: 2020-02-23]

通过设置--keyid-format 0xlong,将打印长密钥ID而不是不安全的短密钥ID:

$ gpg a4ff2279.asc                                                                 
gpg: WARNING: no command supplied.  Trying to guess what you mean ...
pub   rsa8192/0x4E1F799AA4FF2279 2012-12-25 [SC]
      0D69E11F12BDBA077B3726AB4E1F799AA4FF2279
uid                             Jens Erat (born 1988-01-19 in Stuttgart, Germany)
uid                             Jens Erat <jens.erat@fsfe.org>
uid                             Jens Erat <jens.erat@uni-konstanz.de>
uid                             Jens Erat <jabber@jenserat.de>
uid                             Jens Erat <email@jenserat.de>
uid                             [jpeg image of size 12899]
sub   rsa4096/0x0F3ED8E6759A536E 2012-12-26 [E] [revoked: 2014-03-26]
sub   rsa4096/0x2D6761A7CC85941A 2012-12-26 [S] [revoked: 2014-03-26]
sub   rsa2048/0x9FF7E53ACB4BD3EE 2013-01-23 [S] [expires: 2023-01-21]
sub   rsa2048/0x5C88F5D83E2554DF 2013-01-23 [E] [expires: 2023-01-21]
sub   rsa4096/0x8E78E44DFB1B55E9 2014-03-26 [S] [expires: 2020-09-03]
sub   rsa4096/0xCC73B287A4388025 2014-03-26 [E] [expires: 2020-09-03]
sub   rsa4096/0x382D23D4C9773A5C 2014-11-22 [A] [revoked: 2016-03-01]
sub   rsa4096/0xFF37A70EDCBB4926 2016-02-24 [A] [expires: 2020-02-23]
pub   rsa1024/0x7F60B22EA4FF2279 2014-06-16 [SCEA] [revoked: 2016-08-16]
$ gpg --with-colons a4ff2279.asc
gpg: WARNING: no command supplied.  Trying to guess what you mean ...
pub:-:8192:1:4E1F799AA4FF2279:1356475387:::-:
uid:::::::::Jens Erat (born 1988-01-19 in Stuttgart, Germany):
uid:::::::::Jens Erat <jens.erat@fsfe.org>:
uid:::::::::Jens Erat <jens.erat@uni-konstanz.de>:
uid:::::::::Jens Erat <jabber@jenserat.de>:
uid:::::::::Jens Erat <email@jenserat.de>:
uat:::::::::1 12921:
sub:-:4096:1:0F3ED8E6759A536E:1356517233:1482747633:::
sub:-:4096:1:2D6761A7CC85941A:1356517456:1482747856:::
sub:-:2048:1:9FF7E53ACB4BD3EE:1358985314:1674345314:::
sub:-:2048:1:5C88F5D83E2554DF:1358985467:1674345467:::
sub:-:4096:1:8E78E44DFB1B55E9:1395870592:1599164118:::
sub:-:4096:1:CC73B287A4388025:1395870720:1599164118:::
sub:-:4096:1:382D23D4C9773A5C:1416680427:1479752427:::
sub:-:4096:1:FF37A70EDCBB4926:1456322829:1582466829:::
$ gpg --with-colons --import-options show-only --import a4ff2279
[snip]

对于较旧的版本:警告消息打印在STDERR上,因此您只需读取STDIN就可以从警告中分离出关键信息。

无需安装任何进一步的包,您就可以使用gpg--list-packets[file]查看文件中包含的OpenPGP数据包的信息。

$ gpg --list-packets a4ff2279.asc
:public key packet:
    version 4, algo 1, created 1356475387, expires 0
    pkey[0]: [8192 bits]
    pkey[1]: [17 bits]
    keyid: 4E1F799AA4FF2279
:user ID packet: "Jens Erat (born 1988-01-19 in Stuttgart, Germany)"
:signature packet: algo 1, keyid 4E1F799AA4FF2279
    version 4, created 1356516623, md5len 0, sigclass 0x13
    digest algo 2, begin of digest 18 46
    hashed subpkt 27 len 1 (key flags: 03)
[snip]

pgpdump[file]工具的工作方式与gpg--list-packets类似,并提供类似的输出,但将所有这些算法标识符解析为可读的表示形式。它可能适用于所有相关发行版(在Debian派生版本上,该包与工具本身一样被称为pgpdump)。

$ pgpdump a4ff2279.asc
Old: Public Key Packet(tag 6)(1037 bytes)
    Ver 4 - new
    Public key creation time - Tue Dec 25 23:43:07 CET 2012
    Pub alg - RSA Encrypt or Sign(pub 1)
    RSA n(8192 bits) - ...
    RSA e(17 bits) - ...
Old: User ID Packet(tag 13)(49 bytes)
    User ID - Jens Erat (born 1988-01-19 in Stuttgart, Germany)
Old: Signature Packet(tag 2)(1083 bytes)
    Ver 4 - new
    Sig type - Positive certification of a User ID and Public Key packet(0x13).
    Pub alg - RSA Encrypt or Sign(pub 1)
    Hash alg - SHA1(hash 2)
    Hashed Sub: key flags(sub 27)(1 bytes)
[snip]
 类似资料:
  • 所以我有一个名为interestingpoint的类,其中包含变量'name'、'coordines'。我创建了一个包含有趣地点的列表,然后在地图上添加标记,如下所示: 所以主要的问题是,当我点击任何标记时,我可以获得它的细节吗?当我点击标记时,我想显示那个地方的描述和图片。

  • 当然,修改后的应该可以在任何其他计算机上使用(即使该计算机没有访问密码的权限)。 我正在使用Android Studio和Mac OS X Maverics,如果这很重要的话。

  • 我正在创建一个Android应用程序,使用一个普通的谷歌驱动器帐户作为一个应用程序-养号,如上所述,以令人难以置信的简洁,这里: 使用常规Google帐户作为应用程序拥有的帐户 不幸的是,有关如何在云端硬盘上执行任何操作的所有说明都指向客户端密钥,如下所述: Google API控制台-缺少客户端机密 对于已安装的应用程序,这实际上不再存在。我设法通过构建一个实际的网页,在难以置信的痛苦中获得了O

  • 我已经成功地将swagger集成到我的项目中 现在,我可以点击URLhttp://localhost:8080/myapp/v2/api-docs,看到返回的描述REST API的json。例如。 然后我拉入了swagger-ui依赖项

  • 复制步骤创建一个bash脚本,通过NGINX从FastCGI运行,在URL栏中不提供var。 Nginx位置:

  • 是否有一种方法可以在不更改秘密标识符的情况下更改密钥库的秘密值?我在azure portal中尝试了new version按钮,但秘密标识符改变了。 谢了,亚当。