项目是用 git 托管的,项目中使用了git-crypt 对一些文件信息进行加密,每次项目中有新的小伙伴来了,都需要将解密步骤口述一遍,特此整理该文章。
使用 git-crypt 解密
本文是基于Mac的教程。
下载项目代码
git clone xxxx
将项目代码下载到本地
安装GPG
- Mac 上下载安装 GPG Suite,
- 推荐阅读文档中的Create a new key 部分,创建自己的GPG key.
安装git-crypt
brew install git-crypt
- 一篇关于git-crypt的参考文档 git-crypt - transparent file encryption in git
解密操作
解密有两种操作,二选一即可。
方法一:使用项目中共享的 GPG key
推荐使用共享的GPG Key方式进行解密,简单快捷,自己操作,不用同事帮忙,还可以在代码中减少一个commit。
- 将项目上共享的 GPG key (公钥和私钥)导入到自己的GPG Keychain 里。
- 在GPG Keychain 工具里,将该 key 的信任等级设置为最终( ultimate )信任。
image.png
这一步有对应的命令可以操作。
输入gpg --edit-key {key_email}
命令,进入gpg 命令操作界面,
然后输入trust
, 选择信任等级,这里只有选择ultimate的信任才可以解密。
➜ ~ gpg --edit-key shared@email.com
gpg (GnuPG/MacGPG2) 2.2.8; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
# 一些对key的描述删除了
#然后输入trust 命令
gpg> trust
Please decide how far you trust this user to correctly verify other users' keys
(by looking at passports, checking fingerprints from different sources, etc.)
1 = I don't know or won't say
2 = I do NOT trust
3 = I trust marginally
4 = I trust fully
5 = I trust ultimately
m = back to the main menu
Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
gpg>
- 进入到项目的根目录,输入命令
git-crypt unlock
就可以了。
方法二:让同事将你创建GPG key 添加到代码中
-
首先需要让同事将你的GPG publick key 导入到他的GPG Keychain里,这里也可以通过直接在GPG Keychain里使用 Lookup Key搜索来添加。
image.png - 同事需要设置你的key的信任等级为ultimate。(和方法一种的第2步一样)
- 同事在项目根目录,输入命令
git-crypt add-gpg-user yours@email.com
,这个时候产生一个commit,同事将commit push到远程代码库。 - 你拉去最新的代码,在项目更目录输入命令
git-crypt unlock
就可以了。