上 git-secret:在 Git 存储库中加密和存储密钥( 二 )

记住不能共享此密钥 。
-----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]可以通过以下方式导入私钥:
path="secret.gpg"gpg --import "$path"得到以下输出:
$ path="secret.gpg"$ gpg --import "$path"gpg: key E1E734E00B611C26: "Pascal Landau <pascal.landau@example.com>" not changedgpg: key E1E734E00B611C26: secret key importedgpg: Total number processed: 1gpg: unchanged: 1gpg: secret keys read: 1gpg: secret keys unchanged: 1注意:如果secret key需要密码,这里会提示输入密码 。我们可以使用以下方法绕过提示--batch --yes --pinentry-mode loopback
path="secret.gpg"gpg --import --batch --yes --pinentry-mode loopback "$path"目前还不需要提供密码,但需要在稍后尝试解密文件时提供 。
导出、列出和导入gpg公钥,可以通过以下方式导出public.gpg
email="pascal.landau@example.com"path="public.gpg"gpg --armor --export "$email" > "$path"导出如下:
-----BEGIN PGP PUBLIC KEY BLOCK-----mQENBF7VVBwBCADo9un+SySu/InHSkPDpFVKuZXg/s4BbZmqFtYjvUUSoRAeSejvG21nwttQGut+F+GdpDJL6W4pmLS31Kxpt6LCAxhID+PRYiJQ4k3inJfeUx7Ws339...3LLbK7Qxz0cV12K7B+n2ei466QAYXo03a7WlsPWn0JTFCsHoCOphjaVsncIcHxNZt7eK644nWDn7j52HsRi+wcWsZ9mjkUgZLtyMPJNB5qlKQ18QgVdEAhuZxT3SieoBPd+tZikhu3BqyIifmLnxOJOjOIhbQrgFiblvzU1iOUOTOcSIB+7A=g0hF-----END PGP PUBLIC KEY BLOCK-----通过以下方式列出所有公钥:
gpg --list-keys输出:
$ gpg --list-keys/root/.gnupg/pubring.kbx------------------------pub rsa2048 2022-03-27 [SCEA]74082D81525723F5BF5B2099E1E734E00B611C26uid [ultimate] Pascal Landau <pascal.landau@example.com>sub rsa2048 2022-03-27 [SEA]通过以下方式以与私钥相同的方式导入公钥:
path="public.gpg"gpg --import "$path"例如:
$ gpg --import /var/www/app/public.gpggpg: key E1E734E00B611C26: "Pascal Landau <pascal.landau@example.com>" not changedgpg: Total number processed: 1gpg: unchanged: 1git-secretgit-secret的官方网站可以找到详细介绍该工具的内容 。git-secret允许将某些文件声明为“secret”并通过 gpg 加密 。然后可以将加密的文件直接安全地存储在 Git 存储库中,并在需要时进行解密 。本文使用 git-secret v0.4.0
$ git secret --version0.4.0git-secret 安装Alpine 的安装说明如下:
sh -c "echo 'https://gitsecret.jfrog.io/artifactory/git-secret-apk/all/main'" >> /etc/apk/repositorieswget -O /etc/apk/keys/git-secret-apk.rsa.pub 'https://gitsecret.jfrog.io/artifactory/api/security/keypair/public/repositories/git-secret-apk'apk add --update --no-cache git-secret.docker/images/php/base/Dockerfile 进行更新:
# File: .docker/images/php/base/Dockerfile# install git-secret# @see https://git-secret.io/installation#alpineADD https://gitsecret.jfrog.io/artifactory/api/security/keypair/public/repositories/git-secret-apk /etc/apk/keys/git-secret-apk.rsa.pubRUN echo "https://gitsecret.jfrog.io/artifactory/git-secret-apk/all/main" >> /etc/apk/repositories && \apk add --update --no-cache \bash \git-secret \gnupg \make \#...

经验总结扩展阅读