由于使用github的public repository会导致代码中的敏感信息(比如环境配置信息)泄漏,我最近一直想找到一个解决的办法。
今天我想到:敏感信息一般可以集中放在一个纯文本的文件(比如Java中的properties文件)中,那么在check-in到github之前,只要我能够找到一个命令行工具,将这个文本文件进行加密(同时设置解密的密码),然后再把加密后的文件check-in到github。在使用的时候,先从github得到加密后的文件,然后用密码解密即可使用。这样一来,这个问题就变成了找到一个Linux下对文件进行加密解密的工具。
我从这里找到了解决方案:使用GnuPG可以很方便地完成我的要求。当然,GnuPG做这事基本上是杀鸡用牛刀。具体命令如下:
1 | gpg -c diary.txt # You'll be prompted to give the password and then you'll get the encrypted "diary.txt.gpg" file. At this moment, you can remove the original "diary.txt" file and check-in the gpg file into github. |
注:在debian/ubuntu下,可以使用如下命令得知gpg命令来自GnuPG包:
1 | $ dpkg -S /usr/bin/gpg |