我创建了一个带有两个子密钥的主密钥:一个用于签名,另一个用于加密。最后,我将这两个子项导出到了一台新机器上。
我如何告诉新机器将主人视为“终极”,即使机器上没有它?有关系吗?
我创建了一个带有两个子密钥的主密钥:一个用于签名,另一个用于加密。最后,我将这两个子项导出到了一台新机器上。
我如何告诉新机器将主人视为“终极”,即使机器上没有它?有关系吗?
您可以通过打开密钥编辑命令行将每个密钥设置为最终信任
gpg --edit-key [key-id]
并运行trust
命令。现在将提示您选择信任级别:
Please decide how far you trust this user to correctly verify other users' keys
(by looking at passports, checking fingerprints from different sources, etc.)
1 = I don't know or won't say
2 = I do NOT trust
3 = I trust marginally
4 = I trust fully
5 = I trust ultimately
m = back to the main menu
Your decision?
显然,5
将是获得最终信任的正确决定。最后,save
提交更改并退出 GnuPG。相同的命令适用于 GnuPG 1.4 和 GnuPG 2(及更新版本)。
Ultimate 使密钥能够在 OpenPGP 信任网络中引入信任,换句话说,所有最终受信任的密钥都充当信任路径的起点。您应该设置自己的密钥以获得最终信任,但通常不会为其他人这样做。
要在以更简单的方式(没有交互模式)导入后更改密钥的 Ownertrust 信任级别,--edit-key
我在一行中使用以下方式找到了这种方式gpg --import-ownertrust
:
根据Gnupg-users 邮件列表中的此邮件,可以使用更改信任级别gpg --import-ownertrust
您只需要获取fingerprint
密钥的 和您在...中使用的trust level number
是哪个(不要问我为什么,但我已经测试了每个级别)trust level number
gpg --edit-key [key-id]
trust
trust level as 1,2,3,4,5
+ 1
1 = I don't know or won't say => will be = 2
2 = I do NOT trust => will be = 3
3 = I trust marginally => will be = 4
4 = I trust fully => will be = 5
5 = I trust ultimately => will be = 6
将 Ownertrust 信任级别更改ultimate
为示例:
如果已经导入,则获取密钥的指纹(公共或私有)(如果gpg --with-fingerprint mykey.gpg
在导入密钥之前不使用获取指纹)
gpg --list-keys [key-id]
gpg --list-secret-keys [key-id]
FINGERPRINT:LEVEL:
通过回显来更改 Ownertrust 信任级别gpg --import-ownertrust
echo "07C9F77F0E8134E64A7FF0AA666B4C8DC27B4A0A:6:" | gpg --import-ownertrust
查看密钥的新 Ownertrust 信任级别
gpg --list-keys [key-id]
gpg --list-secret-keys [key-id]
您可以导出之前所有密钥的 Ownertrust 信任级别或备份它们
gpg --export-ownertrust > trustlevel.txt
并在需要时重新导入它们
gpg --import-ownertrust < trustlevel.txt
使用gpg --import-ownertrust
您可以在导入密钥之前设置密钥的 Ownertrust 信任级别,然后根据导入操作后定义的信任级别信任该密钥,或者导入密钥然后更改导入密钥的信任级别。
以下是如何为新导入的密钥自动执行此操作 ( gpg --edit-key
; trust
; 5
; ),从而有效地将它们导入为最终受信任的。save
$ gpg --import <key.asc
$ (echo 5; echo y; echo save) |
gpg --command-fd 0 --no-tty --no-greeting -q --edit-key "$(
gpg --list-packets <key.asc |
awk '$1=="keyid:"{print$2;exit}')" trust