【问题标题】:How to encript or secure the keys while pushing to GIT?推送到 GIT 时如何加密或保护密钥?
【发布时间】:2018-11-02 01:43:10
【问题描述】:

我正在使用 Spring Boot 开发应用程序,必须将一些密钥添加到文件中,但是在提交文件并将其推送到 Git 时,公众不能看到它。

由于文件中的这些密钥需要安全,如何为这些文件提供安全性或任何加密??

【问题讨论】:

标签: spring git spring-boot github gitlab


【解决方案1】:

如前所述,请勿将这些文件推送到公共存储库或您认为团队中的其他开发人员不应访问的任何存储库。

您可以使用.gitignore 文件轻松确保这些文件不会被提交:

gitignore - 指定有意忽略的未跟踪文件

见:.gitignore documentation

这里是一组有用的 .gitignore 配置:A collection of useful .gitignore templates

与其使用加密,不如使用如下目录和repo结构:

项目目录:所有项目文件,没有秘密。

秘密目录:仅限秘密。

项目存储库:公共存储库。

Secrets repo:私有存储库,可让受信任的开发人员访问。

然后在您的项目中,您只需在 secrets 目录中引用必要的秘密。

如果您决定使用 GPG 加密(不推荐,因为您必须记住不要误推未加密的文件),您可以使用基本的对称密码。在 Unix 机器上,安装 gpg,然后使用以下终端命令 - 它会请求密码并生成加密的 .gpg 文件。

-c,--仅使用对称密码进行对称加密

gpg -c secrets.txt

【讨论】:

  • .gitignore 将停止将其推送到存储库。但我想将它推送到存储库,但应该能够由大师或某些特定人员查看。它不能对 Git 公众可见。
  • 您可以使用 gpg 之类的工具来使用密码加密文件 - 然后您的“主人”将需要该密码,并且在运行构建等时必须在另一端解密它。如果这对您有用那么你可以这样做。或者,将包含所有密钥的私有仓库保存在项目构建的单独目录中,以及不带任何密钥的公共项目仓库 - 这就是我的建议。
  • 你能提供一个与此相关的例子吗?
  • 见上面的答案。
【解决方案2】:

您应该将该键保存为环境变量。

如何存储和检索这些值取决于您使用的工具。 就您而言,我认为 Spring 框架确实可以做到。

希望您了解逻辑,并了解如何在您使用的 Spring 或服务器中实现。

【讨论】:

  • 你能在春天给我举个例子吗
  • 我同意这是一个不错的选择。他仍然存在想要传递在回购中加密的密钥的问题 - 这确实不应该这样做,至少在公共回购中不应该这样做。
猜你喜欢
  • 1970-01-01
  • 2019-03-29
  • 2015-11-25
  • 2019-08-04
  • 2013-03-10
  • 2011-02-01
  • 2013-06-22
  • 1970-01-01
  • 2010-12-29
相关资源
最近更新 更多