Debian

如何從 pgp 公鑰生成 .asc 文件?

  • September 23, 2020

據我所知,在 openpgp 中,您有一個您可以鎖定或隱藏在某處的私鑰和一個可以與任何人自由共享的公鑰。

現在我看到很多人附加 .asc 文件。如果我點擊它,它會顯示其他人的公鑰。

除了使用您的公鑰然後將其重命名為簽名.asc 之類的東西之外,是否有一個 .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

通常,.asc文件是密鑰材料(或簽名)的 ASCII 鎧裝表示。你shirish-public-key.txt看起來就是這樣,所以如果你確定它包含正確的資訊,你可以按照你的建議簡單地重命名它。(我懷疑它是否包含您的公鑰 - 應該以 . 開頭-----BEGIN PGP PUBLIC KEY BLOCK-----。)如果文件包含“二進制”數據(我猜這就是您說它看起來像檔案時的意思),它不是 ASCII 文件並且通常不會以.asc副檔名命名。

要以這種格式導出您的密鑰,從您的密鑰環而不是現有文件(從而確保它包含正確的數據),執行

gpg --armor --export YOUR_FINGERPRINT &gt; pubkey.asc

為方便起見,文件通常以它們的密鑰 ID 命名;就我而言:

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

您可以使用多種選項來調整導出的數據;例如,--export-options export-minimal將從密鑰中刪除大多數簽名,從而大大減小其大小(但對於關心信任網路的人來說也是有用的)。

引用自:https://unix.stackexchange.com/questions/440978