美文网首页程序员
git上的配置文件如何加密?

git上的配置文件如何加密?

作者: kelvv | 来源:发表于2017-12-11 19:47 被阅读869次

在开发过程中必须会遇到一个问题:

带敏感信息的配置文件是否应该提交上git代码管理?

常用的解决方法如下:

  1. 明文上传到git,方便团队成员合作开发,共同维护配置文件。
  2. 不传到git,本地保存,团队内成员需要使用配置文件再发给对方。

那么今天将为大家介绍另一种解决方法:

加密上传git

一: 有何特性?

  1. 加密后上传git,在git上保存的是二进制文件。
  2. 分发密钥给可信开发人员,进行解密,维护配置文件。
  3. 解密后为明文内容,如需上传,不用再进行加密,工具自动会生成最新的二进制文件后上传。

二: 简单原理分析

该工具名字为: git-crypt , 由c++编写,可以通过brew等方式下载,它利用了加密工具gpg进行加密处理,并且配合git hook,达到每次git提交都会进行自动加密的效果。

三: 使用

1. 安装git-crypt ,gpg
brew install git-crypt
brew install gpg
2. 配置加密工具gpg
# gpg --gen-key // 生成密钥(公钥和私钥),按照流程提示进行
# gpg --list-keys // 会列出当前所有的密钥,检查刚才的密钥是否生成成功 
       
       /Users/jarvin/.gnupg/pubring.kbx
       --------------------------------
       pub   rsa2048 2017-11-29 [SC] [有效至:2019-11-29]
           6B0240D7DFC44C90822F5C4191A6E15AB309D2F5
       uid           [ 绝对 ] kelvv <kelvv@outlook.com>
       sub   rsa2048 2017-11-29 [E] [有效至:2019-11-29]

3. 配置git-crypt
# cd path/to/project
# git-crypt init   // 类似于git init,安装git-crypt到项目中
# git-crypt add-gpg-user kelvv    // 添加密钥用户,这里以我的用户kelvv为例
4. 添加配置文件.gitattributes
# vi .gitattributes

格式为: * filter=git-crypt diff=git-crypt , 例如我要加密config文件夹的三个配置文件 , 则在.gitattributes文件内加入:

config/production.json filter=git-crypt diff=git-crypt
config/development.json filter=git-crypt diff=git-crypt
config/default.json filter=git-crypt diff=git-crypt
5. 上传到git
# git rm -r --cached config/     //清理config的git缓存
# git add .
# git commit -m 'git-crypt'
# git push
6. 导出密钥
# git-crypt export-key ~/Desktop/git-crypt-key   

导出了密钥以后,就可以分发给有需要的团队内部人员。

当团队其他成员获取了代码以后,需要修改配置文件,需要先解密,解密动作只需要做一次,往后就不需要再进行解密了。

7. 解密
# git-crypt unlock /path/to/git-crypt-key

四: 总结

利用该方式进行配置文件管理可以保证安全性,只有团队内相关人员才能看到配置文件明文内容,解密只需要第一次进行,之后就没什么改变,直接改配置文件,git提交会自动加密。

相关文章

  • git上的配置文件如何加密?

    在开发过程中必须会遇到一个问题: 带敏感信息的配置文件是否应该提交上git代码管理? 常用的解决方法如下: 明文上...

  • Centos 6.8 搭建git服务器

    如何在Linux上搭建git服务器 step1:安装git并修改配置文件 # yum -y install git...

  • GIT关联已存在的仓库

    1.添加密钥 在GIT上用户设置/管理SSH密钥/增加密钥,添加本地GIT GUI HERE/HELP/SHOW ...

  • SpringCloud系列之Config7-使用对称性密钥进行加

    数据通过配置文件放在git上,然后还可以通过调用接口的方式返回,如果保证安全问题呢?这里有一个方式就是通过加密的方...

  • Git命令

    Git命令大全git config配置 Git 的相关参数。 Git 一共有3个配置文件: 仓库级的配置文件:在仓...

  • git命令

    Git命令大全git config配置 Git 的相关参数。Git 一共有3个配置文件: 仓库级的配置文件:在仓库...

  • git配置别名 快捷输入命令行

    打开git配置文件进行编辑 保存退出 在终端执行命令git s 执行成功,实际上执行的是git status

  • git 设置公钥ssh key

    目的:加密传输原理:非对称加密方式如何设置: 进入git bash 命令行窗口,输入以下命令 进入C:\Users...

  • Jenkins(四)---Jenkins添加密钥对

    一、添加密钥 1.添加git用户和git密码对 ,用于git客户端从gitlab上拉取代码到本地

  • Git命令大全

    git config 配置 Git 的相关参数。 Git 一共有3个配置文件: 仓库级的配置文件:在仓库的 .gi...

网友评论

    本文标题:git上的配置文件如何加密?

    本文链接:https://www.haomeiwen.com/subject/gzlmixtx.html