是否可以从GPG公钥中恢复私钥?


12

我丢失了用于启动板和电子邮件加密的GPG密钥以及整个~/.gnupg文件夹。我可以使用公钥恢复它们吗?


2
秘密密钥是有原因的秘密。不可以,您不能生成一个新的密钥并使它相同,否则有人可以生成您的密钥。
nanofarad 2012年

@ObsessiveFOSS这是我的钥匙,我是唯一一个谁知道密钥(我认为的为什么它被称为秘密密钥)。我还记得解密/加密算法,电子邮件和密钥中使用的注释。现在,有了公钥,我是否可以重新生成秘密密钥?
sorush-r 2012年

@andrewsomething否。您提到的发问者在一台计算机上拥有密钥。但是我丢了钥匙 (计算机爆炸)
sorush-r 2012年

1
不要关闭此问题。这不是重复的操作,因为OP丢失了他的密钥。无论如何,这将是关于密钥丢失的一个很好的规范问题。
nanofarad 2012年

我对此进行了更规范的编辑。您介意编辑吗?
nanofarad 2012年

Answers:


13

@andrewsomething否。您提到的发问者拥有一台机器上可用的密钥。但是我丢了钥匙 (计算机爆炸)

抱歉,您不能找回钥匙。这是设计使然。

RSA(和DSA / ElGamal)算法经过精心设计,因此必须同时制作密钥。有一些中间变量没有存储为私钥或公钥的一部分。由于公钥是设计为公开的,因此您无法从中推导出私钥,否则将存在巨大的安全漏洞。这两个素数是从随机数生成的。

同样,密钥电子邮件/名称/说明与模数(密钥的“ meaty”数据部分)无关。因此,如果没有备份,就无法恢复您的密钥,至少没有将大量的因数分解,这是目前不容易完成的。密码短语用于使用由密码短语生成的另一个(对称)密钥来保护密钥,但是除了随机数据的杂散源之外,此密钥和密码都不会以任何方式影响模数。

我能做什么?

通过用户名和密码登录后,您可以转到启动板密钥管理,撤消旧密钥。然后制作并发布新密钥。您可以发布的密钥数量没有限制。进行安全备份,并确保没有人未经授权访问备份,并确保备份中的密钥受密码保护。


9

不,您极有可能再次生成相同的密钥。

但是,您可以按照以下步骤轻松导入/导出密钥:

导入密钥环(所有密钥)

只需将~/.gnupg目录从源计算机复制到目标计算机。

仅导入特定密钥

假设键的名称为ABCDFE01

将公钥和私钥分别导出到名为mygpgkey_pub.gpg和的文件中mygpgkey_sec.gpg

gpg --output mygpgkey_pub.gpg --armor --export ABCDFE01
gpg --output mygpgkey_sec.gpg --armor --export-secret-key ABCDFE01 

然后,将这些文件复制到目标计算机,然后运行:

gpg --import ~/mygpgkey_pub.gpg
gpg --allow-secret-key-import --import ~/mygpgkey_sec.gpg 

资料来源: http : //www.ralree.com/2007/03/07/howto-export-and-import-private-gpg-keys/


是的,这就是为什么它的首字母为“ NO”的原因。其余过程仅适用于“导入/导出密钥”。
绿色的

2

打开您的单位破折号并键入,seahorse因为它将列出您passwords and applications。单击以打开。您创建的密钥将存在于“ 我的个人密钥”选项卡中。选择那个。在那里您可以看到您创建的密钥。选择那个键,然后自动在菜单中的导出选项将会激活并选择那个导出按钮。然后将其保存在所需的位置。

现在打开要在其中导入此文件的目标系统。如上所述,还有相同的过程直到打开密码和应用程​​序为止。在该应用程序的主菜单中,选择文件,然后选择导入。通过选择从第一台PC保存的密钥。

如果需要更清晰的图像,请查看这些图像。 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明


我丢失了密钥(整个~/.gnugpg目录)。我记得密码和详细信息,但是新生成的密钥具有不同的指纹和公共密钥...因此,Launchpad不接受我的签名。
sorush-r 2012年

3
该答案不适用于OP,因为他/她已经完全丢失了钥匙。
nanofarad 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.