我需要从 GPG 备份哪些关键文件?我想我的私钥当然符合条件,但还有什么呢?
答案1
最关键的是您的秘密/私钥:
gpg --export-secret-keys > secret-backup.gpg
秘密备份.gpg是需要保证安全的文件。
否则,~/.gnupg/ 目录包含所有私钥和公钥(分别为 secring.gpg 和 pubring.gpg)以及方便存储的配置和 trustdb。
答案2
首先,在我们开始之前,下面的命令中,[email protected]
应该用你的 GPG 密钥的具体标识符替换。你可以使用与密钥关联的电子邮件地址、密钥 ID 的长格式或短格式。
确实,你的私钥至关重要,但其他文件也很重要。
1. 导出密钥和所有者信任:
这些命令用于导出您的密钥和信任级别。公钥和私钥用于加密/解密,信任级别决定您对密钥环中其他密钥的信任程度。
在命令行(Windows 的命令提示符、macOS 和 Linux 的终端)中运行以下命令:
gpg --export --armor [email protected] > [email protected]
gpg --export-secret-keys --armor [email protected] > [email protected]
gpg --export-secret-subkeys --armor [email protected] > [email protected]_priv.asc
gpg --export-ownertrust > ownertrust.txt
2. 导入密钥和所有者信任:
如果您需要恢复密钥和信任级别(例如,重新安装系统后或在新计算机上),请使用以下命令:
gpg --import [email protected]
gpg --import [email protected]
gpg --import [email protected]_priv.asc
gpg --import-ownertrust ownertrust.txt
3. 最终信任导入的密钥:
此步骤用于设置密钥的最终信任级别。运行以下命令,然后输入相信, 然后5(意思是“绝对信任”)并按 Enter 键:
gpg --edit-key [email protected]
gpg> trust
Your decision? 5
注意:如果你在 Windows 上操作,可能需要安装GPG4Win首先。如果你使用的是 macOS,你可能需要安装GPG 套件。
更新 2023.07.21
我想谈的一个要点与备份整个目录的建议有关~/.gnupg/
。这种做法可能看起来简单快捷,但它也存在缺陷。
是的,该~/.gnupg/
目录确实包含您的所有私钥和公钥,以及信任数据库和其他有用数据。但是,它还包括您的密钥撤销证书 ( ~/.gnupg/openpgp-revocs.d/
),不建议将其包含在备份中。这是因为如果您的备份被盗或丢失,恶意行为者可能会撤销您的密钥,从而使其无法使用。
此外,该~/.gnupg/
目录可能包含临时文件和其他不太重要的数据,您在恢复期间可能不需要这些数据,并且可能会不必要地增加备份的大小。
与复制整个目录相比,导出的文件更易于移植,并且更容易导入到其他系统或重新安装后~/.gnupg/
,而复制整个目录可能会导致不同版本的 GPG 或操作系统之间的兼容性问题。
另一方面,正如我上面所解释的那样,导出密钥和信任级别可以实现更可控、更安全的数据管理。这种方法可以最大限度地降低风险,使流程更加可靠和可预测。
因此,虽然复制整个~/.gnupg/
目录似乎是一个快速的解决方案,但就数据安全和管理而言,它可能不是最好的选择。
更新 2024.04.07
评论中提出了一个合理的观点:
“如果您的备份被盗或丢失,恶意行为者可能会撤销您的密钥” - 如果我们的备份被盗,我们无论如何都应该撤销我们的密钥,那么这有什么关系呢?
确实,如果您的备份被盗,撤销密钥是最安全的做法。但是,出于一些原因,我仍然建议导出密钥和信任级别,而不是备份整个~/.gnupg/
目录。
根据具体情况,您可能不会立即意识到备份已被盗或丢失。单独导出密钥可让您有时间根据自己的意愿响应并撤销密钥,以免密钥被滥用。这让您可以控制何时以及如何撤销密钥,让您有时间通知联系人并以可控的方式采取其他必要步骤。
如果被盗备份中存在随时可用的撤销证书,恶意攻击者可能会立即撤销您的密钥,造成更多破坏,并可能让您措手不及。通过不在备份中包含撤销证书,您可以将备份被盗时的潜在损失降至最低。
最终,备份方法的选择取决于您的具体情况和安全要求。如果您对自己确保完整~/.gnupg/
备份的能力充满信心,并且重视快速撤销密钥的能力,那么包括撤销证书在内的备份方法可能是合理的。但是,从数据安全和管理的角度来看,备份整个~/.gnupg/
目录及其所有内容并不是最佳做法。在某些情况下,这可能是可以接受的,但不建议将其作为通用方法推荐给所有人。
答案3
最简单的方法是获取整个 GnuPG 目录 - 通常~/.gnupg/
,它包含您拥有的所有私钥,以及公钥环和其他有用的数据(trustdb 等)
答案4
您肯定希望备份您的私钥和您创建的撤销文件。