繁体   English   中英

当你的项目中有密钥时,如何才能推送到GitHub?

[英]when you have secret key in your project, how can pushing to GitHub be possible?

我正在尝试将一个全新的,空的Rail 3.0.4项目推送到GitHub,但只是意识到cookie会话存储有一个密钥:

config/initializers/secret_token.rb

NewRuby192Rails304Proj::Application.config.secret_token = '22e8...'

那么我们怎样才能避免它被推向GitHub呢? 我们可以忽略这个文件(使用.gitignore ),但没有这个文件,Rails应用程序根本不会运行(并且不是一个完整的Rails应用程序)。 或者通常,其他文件或框架也可能包含包含密钥的文件。 在这种情况下,推送到GitHub时应该如何处理?

添加你的回购:

  • 它的模板( secret_token.rb.template ),
  • 一个脚本,能够根据服务器上找到的本地数据生成一个正确的配置文件secret_token.rb (就像一个加密文件,其秘密值已准备好被解码并放入secret_token.rb文件中)

从那里,添加一个git属性自定义驱动程序

在此输入图像描述

上面引用的脚本将是您的“ smudge ”脚本,它将在工作树的结帐时自动生成正确的文件。

将密钥放在某种外部配置文件中。 这就是我们的工作。

有几种外部工具可以做到这一点。 基本上,这些工具使用您的私有数据加密文件并将其存储在VCS中,但忽略原始的未加密文件。

blackbox是最知名和最值得信赖的。 它使用gpg加密你的文件,并使用githg 顺便说一下,它是由SO团队创建的。 看看替代部分,它至少有五个其他工具。

我还可以推荐一款名为git-secret的工具,它也使用gpg 但它只适用于git 主要优点是与其他工具相比,工作流程更容易。

如果它是私有存储库,您可能会冒险信任Github的安全/隐私..或者:
- 从服务器上的配置文件中提取数据。 例如,如果使用Capistrano进行部署,则可以添加从服务器上的某个位置复制配置文件的步骤。
- 使用环境变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM