从GnuPG导出公钥失败了"警告:没有导出任何内容"

时间:2015-09-09 09:09:25

标签: gnupg pgp openpgp

我是PGP的新手,我试图通过this tutorial使用GnuPG生成PGP私钥。

基本上,我在命令提示符下输入以下命令(在管理员模式下):

  1. gpg --gen-key
  2. 输入以下所有命令: enter image description here

  3. 然后我输入了命令:

    gpg --armor --output pubkey.txt --export 'Encryption purpose'
    
  4. 但是得到了

      

    警告:没有导出

    消息。

    有人可以告诉我我做错了什么吗?

    另外,我将使用PGP加密webapp下载文件。我计划创建一个Web应用程序,它将生成一个带有随机数的文件,需要加密(在PGP中)。然后要解密,我计划创建一个独立的应用程序,它将使用私钥解密文件。所以我的问题是:

    1. 是否可以从生成私钥的原始计算机中提取私钥以与其他计算机一起使用,以便其他计算机也可以使用独立应用程序使用私钥来解密文件原来的电脑?

    2. 如果无法做到这一点,我如何与解密独立应用程序共享所有计算机的私钥(因为据我所知,独立应用程序需要'私钥来解密文件)?我应该使用多个私钥吗?如何实施?

2 个答案:

答案 0 :(得分:6)

此错误是由--export参数与^([1-9]|[1-9]\d)(\.?\d?\d?)$ 中列出的任何用户ID(通常是电子邮件地址)不匹配引起的。

解决方案是运行:

  1. gpg --list-keys
  2. 记下用于生成密钥的电子邮件(例如gpg --gen-key)。然后将其插入gpg:

    1. somename@example.com
    2. 同样在Ubuntu中,似乎gpg2现在是首选,所以请使用例如gpg --armor --output mypublic.key --export 'somename@example.com'

答案 1 :(得分:3)

你的--export命令错了。它不会将导出目的作为参数,而是作为键或用户ID。来自man gpg

--export
    Either export all keys from all keyrings (default keyrings and  those  regis‐
    tered  via  option --keyring), or if at least one name is given, those of the
    given name. The exported keys are written to STDOUT or to the file given with
    option --output.  Use together with --armor to mail those keys.

要导出私钥,请改为运行--export-secret-keys。公钥不能用于解密文件,仅用于加密和验证签名。