PGP 密钥常用命令记录

Published: Sat 13 January 2024

本文记录了在使用 gpg 管理 PGP 密钥时的一些常用命令.

查看本地公钥:

gpg -k --keyid-format long

验证私钥密码:

gpg --export-secret-keys -a $your_key_id > /dev/null && echo OK
gpg --dry-run --passwd $your_key_id
echo foo | gpg --default-key $your_key_id --clearsign

发布你的公钥到 key server:

gpg --keyserver keys.openpgp.org --send-keys <key_id>

导出公钥/私钥:

gpg --export -a $your_key_id > public.asc
gpg --export-secret-keys -a $your_key_id > private.asc

Integrate with git

添加如下代码到 ~/.zshrc:

export GPG_TTY=$(tty)

设置 ~/.gitconfig:

[user]
    signingkey = XXXXXXXXXX
[commit]
    gpgsign = true

Integrate with ssh

在远程主机使用本地的 PGP 密钥: https://wiki.gnupg.org/AgentForwarding

FAQ

  • 当创建一个新的子密钥时, 是否需要对公钥进行修改?

    当一个新的子密钥被创建时, 主密钥本身并不会被修改, 但你公开的 primary key block 需要更新. 否则, 其他人通过旧的 key block 加密的信息无法被你新的子密钥解密, 但仍然能通过主密钥认证你的身份.

参考

  • https://ulyc.github.io/2021/01/13/2021%E5%B9%B4-%E7%94%A8%E6%9B%B4%E7%8E%B0%E4%BB%A3%E7%9A%84%E6%96%B9%E6%B3%95%E4%BD%BF%E7%94%A8PGP-%E4%B8%8A/
  • https://ulyc.github.io/2021/01/26/2021%E5%B9%B4-%E7%94%A8%E6%9B%B4%E7%8E%B0%E4%BB%A3%E7%9A%84%E6%96%B9%E6%B3%95%E4%BD%BF%E7%94%A8PGP-%E4%B8%8B/
  • https://blog.ginshio.org/2020/gpg_started_guide/

links