如何将 GPG 私钥和公钥导出到文件

如何将 GPG 私钥和公钥导出到文件

我通过执行以下命令使用 GPG 生成了密钥

gpg --gen-key

现在我需要将密钥对导出到文件中;即,分别为private.pgp和 的私钥和公钥public.pgp。我该怎么做?

答案1

导出公钥

此命令将导出公钥的 ascii 装甲版本:

gpg --output public.pgp --armor --export username@email

导出密钥

此命令将导出密钥的 ascii 装甲版本:

gpg --output private.pgp --armor --export-secret-key username@email


安全问题、备份和存储

PGP 公钥包含有关某人的电子邮件地址的信息。这通常是可以接受的,因为公钥用于加密发送到您地址的电子邮件。然而,在某些情况下,这是不希望的。

对于大多数用例来说,秘密钥匙不需要导出并且不应该分发。如果目的是创建备份密钥,您应该使用备份选项:

gpg --output backupkeys.pgp --armor --export-secret-keys --export-options export-backup user@email

这将导出恢复密钥所需的所有信息,包括信任数据库信息。确保将所有备份密钥存储在计算平台之外的安全物理位置。

如果此密钥对您很重要,我建议使用以下方法将密钥打印在纸上纸钥匙。并将纸钥匙放入防火/防水的保险箱中。

公钥服务器

一般来说,不建议将个人公钥发布到密钥服务器。密钥一旦发布就无法删除,也无法确保服务器上的密钥是由密钥的假定所有者放置在那里的。

最好将您的公钥放在您拥有或控制的网站上。有人推荐keybase.io用于分发。然而,该方法跟踪各种社会和技术社区的参与情况,这对于某些用例来说可能并不理想。

对于技术熟练的人,我个人建议尝试网络密钥域级密钥发现服务。

答案2

  • 列出您拥有的密钥: gpg --list-secret-keys
  • 导出密钥: gpg -o ~/my-key.asc --export-secret-key name
  • 复制到另一台机器上;
  • 导入密钥: gpg --import my-key.asc

答案3

exportSOMEKEYID 公钥添加到output文件中:

gpg --output public.pgp --export SOMEKEYID

使用秘密密钥时,通常最好不要将它们写入文件,而是使用 SSH 仅使用gpg管道在计算机之间直接复制它们:

gpg --export-secret-key SOMEKEYID | ssh othermachine gpg --import

但是,如果您必须将密钥输出到文件中,请确保它已加密。以下是如何使用 AES 加密来实现这一点黑水獭方法:

gpg --output public.gpg --export SOMEKEYID && \
gpg --output - --export-secret-key SOMEKEYID |\
    cat public.gpg - |\
    gpg --armor --output keys.asc --symmetric --cipher-algo AES256

如果您想要创建公钥和私钥的物理备份,以防止在没有其他方法可以重新访问密钥时发生磁盘故障,则最后一种方法是理想的选择。

笔记:如果您只有私钥的副本,但没有公钥,则可以通过重新导入私钥、信任它,然后重新导出来恢复您的公钥。

私下移动 GPG 密钥出于额外考虑。

答案4

“GnuPG(又名 PGP/GPG)” 更多信息

生成密钥: gpg --gen-key

查看所有键: gpg --list-keys

导出公钥:

gpg --export -a --output [path-to-public-key].asc [email-address]

导出秘钥:

gpg -a --export-secret-keys > [path-to-secret-key].asc

相关内容