当涉及处理机密信息(如密码、令牌、密钥文件等)等,以下问题值得考虑:
- 安全性十分重要,但高安全性往往伴随着高度的不便 。
- 在团队中 , 共享某些密钥有时无法避免(因此现在我们需要考虑在多人之间分发和更新密钥的安全方法) 。
- 具体的密钥通常取决于环境 。
git-secret
和 gpg
。本文将对以下几点展开讲解:
- 识别包含密钥的文件
- 确保将密钥添加到
.gitignore
- 通过
git-secret
进行加密
- 将加密文件提交到存储库
make secret-decrypt
这将会披露代码库中的密钥,在必要时对其进行修改,然后运行:make secret-encrypt
需要再次加密密钥 , 以便提交(并推送到远程存储库),要查看实际效果请运行以下命令:【上 git-secret:在 Git 存储库中加密和存储密钥】
# 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"
记住不能共享此密钥 。-----BEGIN PGP PRIVATE KEY BLOCK-----lQOYBF7VVBwBCADo9un+SySu/InHSkPDpFVKuZXg/s4BbZmqFtYjvUUSoRAeSejvG21nwttQGut+F+GdpDJL6W4pmLS31Kxpt6LCAxhID+PRYiJQ4k3inJfeUx7Ws339XDPO3Rys+CmnZchcEgnbOfQlEqo51DMj6mRF2Ra/6svh7lqhrixGx1BaKn6VlHkC...ncIcHxNZt7eK644nWDn7j52HsRi+wcWsZ9mjkUgZLtyMPJNB5qlKQ18QgVdEAhuZxT3SieoBPd+tZikhu3BqyIifmLnxOJOjOIhbQrgFiblvzU1iOUOTOcSIB+7A=YmRm-----END PGP PRIVATE KEY BLOCK-----
所有密钥都可以通过以下方式列出:gpg --list-secret-keys
输出:$ gpg --list-secret-keys/root/.gnupg/pubring.kbx------------------------sec rsa2048 2022-03-27 [SCEA]74082D81525723F5BF5B2099E1E734E00B611C26uid [ultimate] Pascal Landau <pascal.landau@example.com>ssb rsa2048 2022-03-27 [SEA]
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Docker容器获取宿主机信息
- rx6600和3060哪个好_rx6600和3060选哪个
- 在王者荣耀游戏中,怎么破解上官婉儿的连招
- 王者上官婉儿怎么连招飞天口诀(上官婉儿的6种飞天方法口诀)
- 上官婉儿怎么免伤害连招(上官婉儿怎么玩连招细节)
- 1433223是上官婉儿的连招啊
- 上官婉儿连招技巧(婉儿100%飞天的连招张大仙)
- 上官婉儿怎么连招上天(婉儿怎么100%飞天)
- 上官婉儿怎么连招飞天口诀9种方法(上官婉儿100%飞天连招)
- 上官婉儿有哪些连招(上官婉儿100招口诀)