跳转至

OpenPGP 初探

1. GPG 生成密钥

gpg --expert --full-gen-key

  • --expert:专家模式。
  • --full-gen-key:生成 key。

2. 生成撤销证书

gpg --gen-revoke -so revoke.gpg USERID

3. GPG 显示密钥

gpg --list-secret-keys 或简化命令 gpg -K

  • --keyid-format long:输出长 ID。
  • --fingerprint:输出指纹信息。

4. GPG 导入密钥

从文件导入:

gpg --import [file]

5. GPG 导出密钥

(1). 导出公钥

gpg -ao public-key.txt --export USERID

(2). 导出私钥

导出主私钥:

gpg -ao secret-key --export-secret-key 99F583599B7E31F1!

导出子密钥:

gpg -ao sign-subkey --export-secret-subkeys FDB960B857D397F6!

  • ! 表示仅导出该密钥。

6. GPG 删除密钥

删除私钥:

gpg --delete-secret-keys USERID

删除公钥:

gpg --delete-keys USERID

7. 签名和验证

(1). 生成签名

生成二进制签名文件:

gpg --sign input.txt

生成 ASCII 格式签名:

gpg --clearsign input.txt

签名和原文本分开:

gpg --armor --detach-sign input.txt

  • 增加 --output 参数,可以输出到文件。

(2). 验证签名

验证签名文件:

gpg --verify demo.txt.asc demo.txt

8. 加密和解密

(1). 加密

gpg --recipient {keyid/uid} --output encrypt.txt --encrypt input.txt

gpg -se -o encrypt.txt -r {keyid/uid} input.txt

(2). 解密

gpg --decrypt encrypt.txt --output decrypt.txt

gpg -d encrypt.txt

REF

[1]. SSH-Authentication-with-GPG-Keys-on-Linux

[2]. GnuPG-Home-Configuration-on-Winodws