Encryption 如何导出专用/机密ASC密钥以解密GPG文件

Encryption 如何导出专用/机密ASC密钥以解密GPG文件,encryption,gnu,gnupg,private-key,Encryption,Gnu,Gnupg,Private Key,背景:我的老板曾尝试用公共和私有部分向我导出ASC密钥,但每当我得到文件时,私有部分就不会加载,也不会解密任何文件 我们已尝试使用以下方法导出ASC密钥: Windows应用程序Kleopatra 2.1(包含在gpg4win中) Windows应用程序GNU隐私助手(包含在gpg4win中) 如何正确导出机密或专用asc密钥以解密gpg文件 我认为您尚未导入私钥,如消息错误所述,要从gnupg导入公钥/私钥: gpg --import mypub_key gpg --allow-secr

背景:我的老板曾尝试用公共和私有部分向我导出ASC密钥,但每当我得到文件时,私有部分就不会加载,也不会解密任何文件

我们已尝试使用以下方法导出ASC密钥:

  • Windows应用程序Kleopatra 2.1(包含在gpg4win中)
  • Windows应用程序GNU隐私助手(包含在gpg4win中)


如何正确导出机密或专用asc密钥以解密gpg文件

我认为您尚未导入私钥,如消息错误所述,要从gnupg导入公钥/私钥:

gpg --import mypub_key
gpg --allow-secret-key-import --import myprv_key

您可以使用导出私钥。它在Windows外壳上工作。使用以下命令:

gpg --export-secret-keys
使用
--export
的正常导出将不包括任何私钥,因此您必须使用
--export secret keys

编辑:

为了总结我的评论中给出的信息,此命令允许您将ID为1234ABCD的特定密钥导出到文件secret.asc:

gpg --export-secret-keys --armor 1234ABCD > secret.asc
您可以使用以下命令找到所需的ID。ID是第二列的第二部分:

gpg --list-keys
要仅导出一个特定密钥而不是全部密钥,请执行以下操作:

gpg --export-secret-keys keyIDNumber > exportedKeyFilename.asc
   gpg -a --export-secret-keys keyIDNumber > exportedKeyFilename.asc

keyIDNumber是您试图导出的所需密钥的密钥id号。

这对我有用:

   gpg -a --export-secret-keys > exportedKeyFilename.asc 
只要保留.asc扩展名,就可以用任何名称命名keyfilename.asc。
此命令将用户计算机上的所有密钥复制到调用该命令的工作目录中的keyfilename.asc

要仅导出一个特定密钥而不是全部密钥,请执行以下操作:

gpg --export-secret-keys keyIDNumber > exportedKeyFilename.asc
   gpg -a --export-secret-keys keyIDNumber > exportedKeyFilename.asc

keyIDNumber是您尝试导出的所需密钥的密钥id号

以上所有回复都是正确的,但可能缺少一个关键步骤,您需要编辑导入的密钥并“最终信任”该密钥


然后选择5以启用导入的私钥作为您的密钥之一

请参阅Dark Otter的治疗

如果站点关闭,请参考archive.org备份:

其中包括一种合理安全的密钥传输方式。您可以将该建议放入如下所示的shell脚本中以供重复使用

首先从显示的列表中获取所需的KEYID

$ gpg -K
从结果列表中,注意传输所需的KEYID(秒后的8个十六进制)

然后,在第一个帐户上envoke测试的shell脚本“export_private_key”,并生成pubkey.gpg+keys.asc。随后在第二个帐户上调用“import\u private\u key”。以下是cat显示的内容(复制和粘贴内容):

现在,通过某种方式将“pubkey.gpg”(如果需要)和私有“keys.asc”传输到第二个帐户,并调用下面显示的程序

$ cat import_private_key 
gpg --no-use-agent --output - keys.asc | gpg --import
###################  I M P O R T _ P R I V A T E _ K E Y  ######################

根据Otter的精神,“应该是这样的”。

与@Wolfram J的回答类似,这里有一种加密私钥的方法:

以及相应的解密方法:

gpg private_key.asc
1.导出密钥(这是你的老板应该为你做的事情)

2.导入密钥(导入您的私钥)

3.尚未完成,您仍然需要最终信任密钥。 您需要确保最终也信任密钥

gpg --edit-key yourKeyName
输入trust,5,y,然后退出


来源:

@Brian:这会将密钥转储到控制台。如果要将其存储在文件中,可以将输出重定向到任意文件名(“gpg--export secret keys>secret.asc”)。@Brian:这将以ASCII格式而不是二进制格式提供输出。如果你把它保存在一个文件里,那其实并不重要。但是,一旦你想以其他方式传递它,ASCII版本就更容易处理(例如通过电子邮件内联发送),也许你想把你的密钥带到另一个位置。在这种情况下,您应该加密导出的数据:“gpg--export secret keys keyidname | gpg-c>encrypted”使用“gpg-o unencrypted encrypted”对其进行解密。从GnuPG导出的密钥保持加密(这就是您不需要输入私钥密码短语的原因),所以真的不需要再加密了。@FerryBoender?您可以用“-list key”列出所有可用的密钥。第二列将包含类似“2048g/1234ABCD”的ID。找到所需的密钥并使用“gpg--export secret keys 1234ABCD>secret.asc”将其导出,当然可以使用正确的ID更改1234ABCD。您还可以添加“-a”标志。它用ASCII字符写入输出,以防二进制输出引起麻烦。@demento,感谢您的额外反馈。。。我会在回答中加上-a如果你真的想要asc,那么你如何将它们导入到另一台计算机?@Natim我想象你将
exportedKeyFilename.asc
导入到另一台计算机,然后在
gpg--允许密钥导入--importedkeyfilename.asc
目录下的
文件中执行
gpg--允许密钥导入--exportedKeyFilename.asc
。看:我问的是如何从一台工作正常的计算机上导出。。。只有在本地服务器上才能导入密钥。@布赖恩·麦卡锡:你想说什么?如果私钥已经导入,我们真的需要导入公钥吗?据我所知,公钥可以由私钥生成。@farhany我认为是的,因为您在签署邮件时需要它。感谢您的脚本将公钥和私钥包含在一个受密码保护的文件中。让我的生活更美好!选项
--不使用代理
在gpg版本2中已过时。
gpg private_key.asc
gpg --export-secret-keys yourKeyName > privateKey.asc
gpg --import privateKey.asc
gpg --edit-key yourKeyName