如何指定用于GnuPG签名/验证的密钥?


2

我们有一个包,我们正在尝试创建一个独立的签名,以确保另一端可以确信它来自我们。

我知道如何在创建密钥对时指定正确的身份,因为gpg --gen-key具体要求身份。我也知道如何导出给定标识的公钥和私钥:

gpg --export             me@somewhere.com --armour --output key.public
gpg --export-secret-keys me@somewhere.com --armour --output key.private

并且应在接收端分发和导入公钥以进行验证:

gpg --import key.public

但是(我的第一个问题),我不知道在单个身份可能有多个身份的情况下如何指定特定的密钥对。例如,假设我们有两个密钥对me@somewhere.com,一个用于软件安装包,另一个用于安全shell访问。我如何只出口其中一对?

我的第二个问题更多地与生成和验证文档上的签名有关。

命令如何:

gpg --detach-sig inputDoc --output detachedSigDoc

实际上知道用于创建签名的密钥对?我看到有一个--local-user允许你“指定用于签名的用户ID”,但是当给定身份有多个密钥对时,它是如何工作的?

在任何情况下,该gpg --verify选项似乎没有等效的操作,那么我们如何指定在检查文件源时使用的密钥对?

对于它的价值,我们使用的是GnuPG版本1,因为我们使用的是嵌入式系统。

Answers:


1

签名:我不记得这是否是一个更改,但v2手册页说--local-user/-u 或者 --default-key可以指定签名密钥。虽然这里没有明确说明,但您需要识别密钥的任何地方都可以使用userid(通常但不一定是电子邮件地址)或keyid。如果同一用户标识有多个密钥,请使用keyid唯一指定。

验证: keyid在签名包中,并且(公共)密钥是自动找到的- 除非你的密钥环中没有那个密钥,在这种情况下它说Can't check signature: No public key,如果你想检查你必须得到并导入键。

PS:你究竟是如何使用GPG / PGP密钥进行SSH的?AFAIK OpenSSH或商业(Tectia)SSH都不能使用PGP格式密钥。

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.