如何从 pgp 公钥生成 .asc 文件?

如何从 pgp 公钥生成 .asc 文件?

据我所知,在 openpgp 中,你有一个私钥,你可以将其锁定或隐藏在某处,还有一个公钥,你可以与任何人自由共享。

现在我看到很多人附加 .asc 文件。如果我点击它,它就会显示其他人的公钥。

拥有 .asc 文件只是使用您的公钥,然后将其重命名为类似 Signature.asc 的文件,还是还涉及其他内容? .asc 文件似乎是存档文件(如 .rar 或 zip 文件)

$ cat shirish-public-key.txt
-----BEGIN PGP SIGNATURE-----
publickeystring$
-----END PGP SIGNATURE-----

如何将其制作/转换为 .asc 文件?

我可以这样做——

$ mv shirish-public-key.txt shirish.asc

但我不知道这样做是否正确。

更新 - 我尝试过,但不起作用:(

$ gpg --armor export shirish-public-key.txt > pubkey.asc
gpg: WARNING: no command supplied.  Trying to guess what you mean ...
usage: gpg [options] [filename]

更新2-仍然不起作用-

$ gpg --armor --export shirish-public-key.txt > pubkey.asc 
gpg: WARNING: nothing exported

似乎无法弄清楚公钥位于文本文件中。

更新 3 -

这就是文件内容的样子

http://paste.debian.net/1022979/

但如果我跑——

 $ gpg --import shirish-public-key.txt 
    gpg: invalid radix64 character 3A skipped
    gpg: invalid radix64 character 2E skipped
    gpg: invalid radix64 character 2E skipped
    gpg: invalid radix64 character 2E skipped
    gpg: invalid radix64 character 3A skipped
    gpg: invalid radix64 character 3A skipped
    gpg: invalid radix64 character 2E skipped
    gpg: CRC error; 1E6A49 - B36DCC
    gpg: [don't know]: invalid packet (ctb=55)
    gpg: read_block: read error: Invalid packet
    gpg: import from 'shirish-public-key.txt' failed: Invalid keyring
    gpg: Total number processed: 0

似乎有什么地方不对劲。

FWIW gpg 是来自 Debian 测试的版本 2.2.5(正在运行所有更新的测试)

$ gpg --version
gpg (GnuPG) 2.2.5
libgcrypt 1.8.2
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: /home/shirish/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

答案1

通常,.asc文件是密钥材料(或签名)的 ASCII 防护表示。您的shirish-public-key.txt看起来就是这样,所以如果您确定它包含正确的信息,您可以按照您的建议简单地重命名它。 (我怀疑它是否包含你的公钥——应该以 开头-----BEGIN PGP PUBLIC KEY BLOCK-----。)如果一个文件包含“二进制”数据(我猜这就是你说它看起来像存档时的意思),那么它不是一个 ASCII 文件,并且通常不会用.asc扩展名命名。

要以这种格式导出密钥,请从密钥环而不是现有文件中导出(从而确保它包含正确的数据),请运行

gpg --armor --export YOUR_FINGERPRINT > pubkey.asc

为了让事情变得更简单,文件通常按其密钥 ID 命名;就我而言:

gpg --armor --export "79D9 C58C 50D6 B5AA 65D5  30C1 7597 78A9 A36B 494F" > 0x759778A9A36B494F.asc

您可以使用多种选项来调整导出的数据;例如,--export-options export-minimal将从密钥中删除大部分签名,从而大大减小其大小(但对于关心信任网络的人来说也很实用)。

答案2

您不能将 PGP 公钥的文本复制并粘贴到文本编辑器中,然后将其另存为 .txt ,然后将文件重命名为 .asc 吗?

这适用于 Windows

相关内容