据我所知,在 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