GnuGPG Git中的使用及配置
🗓️发布日期:2020-04-25 · 🗺️总字数: 599 字 · ⏱️阅读时间: 2 Minute为什么需要使用GnuGPG来签名Git commit?,请查看:Git 工具 - 签署工作
安装GPG
-
macOS
brew
使用以下命令 :1 2
brew install gpg
使用GPG
-
使用以下生成密钥命令:1
1 2 3 4
gpg --full-generate-key #git version 2.17.*以上使用这条命令 # git version 2.1.17 last use under command gpg --default-new-key-algo rsa4096 --gen-key
根据提示一步一步的设置好信息,然后执行:
1 2 3 4 5
#查看密钥信息ID gpg --list-secret-keys --keyid-format LONG #导出签名copy到Github个人设置界面->SSH and GPG keys中 gpg --armor --export <GPG PUB UID>
-
上传密钥到公钥服务器2
1 2
gpg --send-keys [用户ID] --keyserver hkp://subkeys.pgp.net
-
导出公钥和私钥
1 2 3
gpg --output mygpgkey_pub.gpg --armor --export <gpg pub id> gpg --output mygpgkey_sec.gpg --armor --export-secret-key <gpg pub id>
-
导入密钥(公钥和私钥)
1 2 3 4
gpg --import [密钥文件] gpg --import ~/mygpgkey_pub.gpg gpg --allow-secret-key-import --import ~/mygpgkey_sec.gpg
-
删除密码:
1 2 3 4 5 6
gpg --edit-key 375A500B # 在弹出的界面中输入原来密码,新密码留空即可 passwd # 保存修改 save
配置Git项目
-
设置使用的GPG签名3
1 2
git config --global user.signingkey <GPG PUB UID>
-
打开项目提交GPG签名
1 2
git config --global commit.gpgsign true #所有项目打开,只针对当前项目打开则删除其中的--global
-
使用签名提交:4
1 2 3 4
git commit -S -m commit message #Tag签名 git tag -s
-
对tag进行签名:5
git tag -s tagname
Note
Git commit的时,出现以下错误:
|
|
- 确认是否导入:
export GPG_TTY=$(tty)
到~/.zshrc
或~/.bash
文件中; - 使用: git config –list 查看 user.signingkey and commit.gpgsign 是否重复设置或设置错误,如果重复设置使用: git config –unset 删除对应的参数
- 如果提示
Sorry, no terminal at all requested - can't get input
的话,需要 把~/.gnupg/gpg.conf
中的no-tty
注释掉
🏷️
git