您的位置:首页 > 其它

git使用GPG进行签名

2015-08-25 15:46 375 查看

什么是GPG

要了解什么是GPG,就要先了解PGP。

1991年,程序员Phil Zimmermann为了避开政府监视,开发了加密软件PGP。这个软件非常好用,迅速流传开来,成了许多程序员的必备工具。但是,它是商业软件,不能自由使用。所以,自由软件基金会决定,开发一个PGP的替代品,取名为GnuPG。这就是GPG的由来。

生成GPG Key

[code]mkdir ~/.gnupg  #GPG保存文件时需要
gpg --gen-key   #根据提示输入信息


查看生成的GPG key

[code]gpg --list-keys         #公钥
gpg --list-secret-keys  #私钥


[code]c:/Users/***/.gnupg\pubring.gpg
------------------------------------------
pub   2048R/E6FA5EAF 2015-08-25 [expires: 2025-08-22]
uid                  yourname (first pgp encrypt) <***@qq.com>
sub   2048R/41B91511 2015-08-25 [expires: 2025-08-22]


使用GPG加密tag

[code]git tag -u "gpg-key-id" -m "tag comment" v2.0
# -u, --local-user <key-id> #指定gpg keyId


配置gitconfig

[code]git config --global user.signingkey <GPG-key-id>


现在你能够签署标签或提交时,不必每次运行时指定密钥:

[code]git commit -S -m "GPG-sign" 
# -s --signoff ,只添加一行Signed-off-by注释
# -S[<keyid>]  ,使用GPG签名并提交.

git tag -s -m "GPG-sign tag"
# -s --sign    ,使用默认key签名


默认情况下git log不会列出或者验证签名。要显示提交所对应的签名,我们可以使用
--show-signature
选项

[code]git log --show-signature


参照:

- GPG入门教程

- Git 使用中的教训:签名提交确保代码完整可信
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: