M1 Mac 配置 GPG

2,637 阅读1分钟

GPG 是 GNU Privacy Guard 的简称,又名 GnuPG 是一种加密软件,它是 PGP 即 Pretty Good

安装 GPG

在 macOS 下通过 Homebrew 来安装

brew install gpg 

使用 GPG,生成公钥和私钥

在终端下执行命令

gpg --full-generate-key

此处:全部默认即可;除用户/邮箱/密码 自定义

显示和导出公钥和私钥

gpg --list-keys //查看所有keys
gpg --list-public-keys //查看所有公钥
gpg --list-secret-keys //查看所有私钥

上面看到的都是精简的内容,如果要看到完整的内容,通过如下命令

gpg --armor --export <邮箱或者指纹字符串或者长密钥 ID> //查看完整的公钥
gpg --armor --export-secret-keys <邮箱或者指纹字符串或者长密钥 ID> //查看完整的私钥

GitHub 的 Commit 加密

访问 github.com/settings/ke…, 点击右侧的 New GPG keys,将公钥输入进去,注意是公钥,不是私钥,得到的结果如下图。

本地电脑设置密钥,打开终端输入:

git config --global gpg.program gpg
git config --global user.signingkey <长密钥 ID>
git config --global commit.gpgsign true //让每次 commit 自动要求签名,如果不增加则需要 git commit -S -m "内容",每次加上 -S 参数。

但是在 git commit 的时候总会遇到问题

error: gpg failed to sign the data
fatal: failed to write commit object

如何解决:

  • 注意: M1 芯片安装 pinentry-mac 的目录是 /opt/homebrew/bin/pinentry-mac

    brew upgrade gnupg # This has a make step which takes a while brew link --overwrite gnupg brew install pinentry-mac echo "pinentry-program /opt/homebrew/bin/pinentry-mac" >> ~/.gnupg/gpg-agent.conf killall gpg-agent vim ~/.zshrc -> #在文件中输入: export GPG_TTY=(tty) vim ~/bash_profile -> #在文件中输入: export GPG_TTY=(tty)

    重启电脑,打开控制台 

echo "test" | gpg --clearsign # 弹出 输入密码框即成功