我已经导出了我的密钥
gpg --export-secret-key "user name" > path/to/secretkeybackupfile.key
然后完成
gpg path/to/secretkeybackupfile.key
它将密钥的详细信息显示为具有正确 ID 的密钥。有没有一种方法可以测试它是否会真正解密我用该密钥创建的文件,从而证明它确实是正确的密钥并且可以正常工作?
我能看到这样做的唯一方法是删除原始密钥,然后将其副本导入回 GPG 密钥环中......
此外,我注意到在导出密钥时,它会在没有任何警告的情况下覆盖指定的文件,并且仅包含部分用户名似乎与包含整个用户名具有相同的效果,这是正确的吗?这是期望的行为吗?
设置
$GNUPGHOME
为一个临时的空目录,然后您就可以将您的密钥导入到一个新的空白密钥环中。测试后,取消设置变量(或关闭 shell 窗口),您将返回到常规密钥环。>
shell 操作员总是会在没有警告的情况下覆盖文件。重定向运算符不是 gpg的一部分——它们是您的 shell 语言/语法的一部分,并且无论您将它们用于什么命令,它们的行为都是相同的。在 bash 中,你可以使用
set -o noclobber
make 来>
避免覆盖文件;然后,只要您真正希望覆盖发生,就必须指定>|
(bash) 或(zsh)。>!
那是有意的行为;密钥选择与 --export 以及 --list-keys、--recipient 和其他类似选项的作用相同。您始终能够
gpg -k fred
列出所有匹配的键。更重要的是,您始终能够创建任意数量的具有相同名称和地址的密钥。(例如,我有 4-5 个密钥,当然它们上的名字都相同,只是电子邮件地址不同。我的公钥环也显示几个人随着时间的推移拥有多个密钥。)
选择单个密钥的唯一始终可靠的方法是使用其完整指纹。另一种通常可靠的方法是使用 16 位“密钥 ID”(即截断的指纹)。