从GnuPG导出公钥失败,出现"警告:没有导出"

Ash*_*shT 6 gnupg pgp openpgp

我是PGP的新手,我正在尝试通过本教程使用GnuPG生成PGP私钥.

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

  1. gpg --gen-key
  2. 输入以下所有命令: 在此输入图像描述

  3. 然后我输入了命令:

    gpg --armor --output pubkey.txt --export 'Encryption purpose'
    
    Run Code Online (Sandbox Code Playgroud)

但得到一个

警告:没有导出

信息.

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

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

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

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

nik*_*nik 6

此错误是由--export参数与列出的任何用户ID(通常是电子邮件地址)不匹配引起的gpg --list-keys.

解决方案是运行:

  1. gpg --gen-key

记下用于生成密钥的电子邮件(例如somename@example.com).然后将其插入gpg:

  1. gpg --armor --output mypublic.key --export 'somename@example.com'

同样在Ubuntu中,似乎gpg2现在是首选,所以请使用例如gpg2 --gen-key.


Tal*_*man 6

使用此命令查看 id:

gpg --list-secret-keys --keyid-format LONG "your_email"
Run Code Online (Sandbox Code Playgroud)

输出将如下所示:

sec   rsa4096/30F2B65B9246B6CA 2017-08-18 [SC]
      D5E4F29F3275DC0CDA8FFC8730F2B65B9246B6CA
uid                   [ultimate] Mr. Robot <your_email>
ssb   rsa4096/B7ABC0813E4028C0 2017-08-18 [E]
Run Code Online (Sandbox Code Playgroud)

然后输入命令:

gpg --armor --export-secret-keys 30F2B65B9246B6CA
Run Code Online (Sandbox Code Playgroud)

然后你就得到了钥匙:)


Jen*_*rat 4

你的命令错了--export。它不采用导出目的作为参数,而是采用密钥或用户 ID。从man gpg

\n\n
--export\n    Either export all keys from all keyrings (default keyrings and  those  regis\xe2\x80\x90\n    tered  via  option --keyring), or if at least one name is given, those of the\n    given name. The exported keys are written to STDOUT or to the file given with\n    option --output.  Use together with --armor to mail those keys.\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n

  • 我如何找到用户 ID? (2认同)