当涉及处理机密信息(如密码、令牌、密钥文件等)等,以下问题值得考虑:
- 安全性十分重要,但高安全性往往伴随着高度的不便 。
- 在团队中,共享某些密钥有时无法避免(因此现在我们需要考虑在多人之间分发和更新密钥的安全方法) 。
- 具体的密钥通常取决于环境 。
git-secret
和 gpg
。本文将对以下几点展开讲解:
- 识别包含密钥的文件
- 确保将密钥添加到
.gitignore
- 通过
git-secret
进行加密
- 将加密文件提交到存储库
make secret-decrypt
这将会披露代码库中的密钥,在必要时对其进行修改,然后运行:make secret-encrypt
需要再次加密密钥,以便提交(并推送到远程存储库),要查看实际效果请运行以下命令:# checkout the branchgit checkout part-6-git-secret-encrypt-repository-docker# build and start the docker setupmake make-initmake docker-buildmake docker-up# "create" the secret key - the file "secret.gpg.example" would usually NOT live in the repo!cp secret.gpg.example secret.gpg# initialize gpgmake gpg-init# ensure that the decrypted secret file does not existls passwords.txt# decrypt the secret filemake secret-decrypt# show the content of the secret filecat passwords.txt
Tooling我们在 PHP base
镜像中设置 gpg
和 git-secret
以便这些工具在所有其他容器中都可用 。以下所有命令都在 application
容器中执行 。请注意,
git-secret
在主机系统和 docker 容器之间共享的文件夹中使用时需要注意 。将在下面称为 “git-secret
目录和gpg-agent
socket”的部分中更详细地解释这一点 。gpggpg 是The GNU Privacy Guard的缩写,是 OpenPGP 标准的开源实践 。简而言之,GNU允许我们创建一个个人密钥文件对(类似于 SSH 密钥),其中包含一个私有密钥和一个可以与您想要解密其消息的其他方共享的公共密钥 。
gpg 安装关于安装,我们可以简单地运行
apk add gnupg
并相应更新 .docker/images/php/base/Dockerfile
:# File: .docker/images/php/base/DockerfileRUN apk add --update --no-cache \bash \gnupg \make \#...
创建 gpg 密钥对我们需要通过以下方式创建 gpg
密钥对(Key Pair):name="Pascal Landau"email="pascal.landau@example.com"gpg --batch --gen-key <<EOFKey-Type: 1Key-Length: 2048Subkey-Type: 1Subkey-Length: 2048Name-Real: $nameName-Email: $emailExpire-Date: 0%no-protectionEOF
%no-protection
创建一个没有密码的key 。输出:
$ name="Pascal Landau"$ email="pascal.landau@example.com"$ gpg --batch --gen-key <<EOF> Key-Type: 1> Key-Length: 2048> Subkey-Type: 1> Subkey-Length: 2048> Name-Real: $name> Name-Email: $email> Expire-Date: 0> %no-protection> EOFgpg: key E1E734E00B611C26 marked as ultimately trustedgpg: revocation certificate stored as '/root/.gnupg/opengpg-revocs.d/74082D81525723F5BF5B2099E1E734E00B611C26.rev'
也可以在没有 --batch
标志的情况下以交互方式引导整个过程运行gpg --gen-key
,然后导出、列出和导入私有 gpg
Key,可以通过以下方式导出:email="pascal.landau@example.com"path="secret.gpg"gpg --output "$path" --armor --export-secret-key "$email"
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Docker容器获取宿主机信息
- 饭圈xjb是什么意思?
- 饭圈xtm是什么意思?
- 上官婉儿有哪些连招(上官婉儿100招口诀)
- NIKKE:胜利女神教堂图纸在哪里获取
- 小米11s配置参数_小米11s配置消息
- 河南史上最强高考状元 河南高考状元
- 目前世界上肥胖人口是多少 中国肥胖人口数据
- 上官婉儿怎么连招(婉儿100%飞天的连招张大仙)
- 爱上锦鲤是什么意思?