如何從 pgp 公鑰生成 .asc 文件?
據我所知,在 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 > pubkey.asc
為方便起見,文件通常以它們的密鑰 ID 命名;就我而言:
gpg --armor --export "79D9 C58C 50D6 B5AA 65D5 30C1 7597 78A9 A36B 494F" > 0x759778A9A36B494F.asc
您可以使用多種選項來調整導出的數據;例如,
--export-options export-minimal
將從密鑰中刪除大多數簽名,從而大大減小其大小(但對於關心信任網路的人來說也是有用的)。