【问题标题】:How secure is storing password with Git?使用 Git 存储密码的安全性如何?
【发布时间】:2015-03-22 04:16:11
【问题描述】:

我在工作场所使用 Git,公司政策不允许我以不安全的方式存储密码。有没有比使用git config credential.helper store 将密码存储到 Git 服务器更好的选择?

附:无法使用密钥验证,因为我们的服务器不允许这样做。

【问题讨论】:

  • 完全避免使用密码会提高安全性。如果可以,请使用 ssh 和 ssh 密钥访问存储库。
  • 同意,我将它用于 GitHub,但不幸的是我们的服务器仅使用 https。我无法更改它,因为它是公司政策(?)。
  • 我希望你的意思是https
  • 问号告诉我你不知道这是否符合政策。很多时候这些东西不是。即使是这样,政策也可以改变。由您决定是否值得提出建议。

标签: linux macos git security


【解决方案1】:

git config credential.helper store 不是很安全;正如documentation中所说:

使用此帮助程序会将未加密的密码存储在磁盘上, 仅受文件系统权限保护

~/.git-credentials 文件将设置其文件系统权限以防止系统上的其他用户读取它,但不会被加密或以其他方式保护。

所以它会按原样存储您的密码。 Git 允许将您的钥匙串 git config --global credential.helper osxkeychain 用于 OSX,因此它似乎更安全。对于 Linux 系统,您可以使用git config credential.helper cache,它将密码存储在您的内存中。或者您可以按照git help credentials 中的说明编写自己的代码:

您可以编写自己的自定义助手来与任何系统交互 您保留凭据。请参阅 Git 的文档 credentials API了解详情

另外,@VonC 指向了跨平台的GPG-based solution。另请参阅 this question 关于 .netrc 文件。

还有用于 Linux 的 gnome-keyring helper(感谢 @jazakmeister 的建议)

【讨论】:

  • 使用 netrc gpg 加密的凭证助手:stackoverflow.com/a/18362082/6309。适用于任何平台、Windows、OsX、Linux。
  • 还有一个 gnome-keyring 助手。
  • 如何在windows中加密存储密码?
  • @testerjoe 看看上面的 cmets
  • 我在 Ubuntu 的终端中运行了 git config credential.helper cache,然后 git pull 要求提供凭据。 Ran git pull 再次,没有询问凭据。它有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-29
  • 1970-01-01
  • 2010-12-07
  • 2018-05-13
  • 2016-04-01
相关资源
最近更新 更多