Gangmax Blog

在Linux下使用GnuPG加密文件

由于使用github的public repository会导致代码中的敏感信息(比如环境配置信息)泄漏,我最近一直想找到一个解决的办法。

今天我想到:敏感信息一般可以集中放在一个纯文本的文件(比如Java中的properties文件)中,那么在check-in到github之前,只要我能够找到一个命令行工具,将这个文本文件进行加密(同时设置解密的密码),然后再把加密后的文件check-in到github。在使用的时候,先从github得到加密后的文件,然后用密码解密即可使用。这样一来,这个问题就变成了找到一个Linux下对文件进行加密解密的工具。

我从这里找到了解决方案:使用GnuPG可以很方便地完成我的要求。当然,GnuPG做这事基本上是杀鸡用牛刀。具体命令如下:

1
2
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.
gpg diary.txt.gpg # After you get this gpg file(maybe from github) and run this command, you'll be prompted to enter the password you gave in the first command and the "diary.txt" will be decrypted.

注:在debian/ubuntu下,可以使用如下命令得知gpg命令来自GnuPG包:

1
2
$ dpkg -S /usr/bin/gpg
gnupg: /usr/bin/gpg

Comments