PGP 密钥常用命令记录

本文记录了在使用 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 加密的信息无法被你新的子密钥解密,但仍然能通过主密钥认证你的身份.

参考