重新排列GPG中的UID


18

在GPG中,是否可以在PGP密钥的UID列表中向上或向下移动UID?

我意识到这是纯粹的修饰,但是我可能想使用它来显示我的地址中的优先级,如果可能的话,应该首先使用该地址。

pub   4096R/0xAABBD62D0BA66C66 2014-09-02
uid                 [ultimate] Mr. Foo Bar <fourth@example.com>
uid                 [ultimate] Mr. Foo Bar <first@example.com>
uid                 [ultimate] Mr. Foo Bar <third@example.com>
uid                 [ultimate] Mr. Foo Bar <second@example.com>

Answers:


22

您可以通过将UID设置为主要来使其显示在列表的顶部。然后,顶部UID向下移动到第二个插槽,同样,其他所有内容都向下移动一个空间。似乎只有save在更改密钥后才会发生这种“移位” 。

如果要获得正确的顺序,则需要重复这些步骤,从要显示的倒数第二个UID开始,一直到要显示为顶部(第一个)UID的项目为止。

用于执行此操作的命令是(以下文本$以及gpg>您在控制台中键入的内容):

$ gpg --edit-key 0xAABBD62D0BA66C66
gpg (GnuPG) 1.4.16; Copyright (C) 2013 Free Software Foundation, Inc.
 # irrelevant output removed #
[ultimate] (1). Mr. Foo Bar <fourth@example.com>
[ultimate] (2)  Mr. Foo Bar <first@example.com>
[ultimate] (3)  Mr. Foo Bar <third@example.com>
[ultimate] (4)  Mr. Foo Bar <second@example.com>
gpg> uid 3
[ultimate] (1). Mr. Foo Bar <fourth@example.com>
[ultimate] (2)  Mr. Foo Bar <first@example.com>
[ultimate] (3)* Mr. Foo Bar <third@example.com>
[ultimate] (4)  Mr. Foo Bar <second@example.com>
gpg> primary
[ultimate] (1)  Mr. Foo Bar <fourth@example.com>
[ultimate] (2)  Mr. Foo Bar <first@example.com>
[ultimate] (3)* Mr. Foo Bar <third@example.com>
[ultimate] (4)  Mr. Foo Bar <second@example.com>
gpg> save

然后冲洗并重复,从倒数第二个项目一直倒退,直到要在列表中首先显示的项目是主要UID。


这不是一个非常有效的解决方案,所以我希望其他人知道更好的方法。
IQAndreas 2014年

3
GPG并不是一个非常有效的解决方案,但它(在技术上)有效!
conorsch

3

唯一可以保证的行为是首先列出主UID。

无法进一步重新排列它们,并在钥匙圈中造成很多混乱,因为每次更改都需要新的自签名。

即使UID在您的系统上以“正确”的顺序显示,它们也是这样做的,因为数据库的顺序更改和数据库的实现导致了这种情况,因此系统一次看到多个更改,或者使用不同的数据库后端行为可能会有所不同。


1

显示的第一个UID是具有主要标志或最新的自签名的UID。

其他的按它们添加到密钥环的顺序显示,即创建顺序或导入顺序。

因此,您可以通过创建仅包含一个UID的文件,删除密钥(不要忘记先备份私钥!)并按所需顺序导入UID来最大程度地减少自签名的数量。

您可以使用gpgsplit或通过删除除一个UID之外的所有UID并导出其余的UID,导入具有所有UID的文件,删除除另一个UID之外的所有UID 来创建这些文件。

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.