我在我的工作场所使用Git,公司政策并不允许我以不安全的方式存储密码。有没有比使用git config credential.helper store
将密码存储到Git服务器更好的选择?
P.S。无法使用密钥身份验证,因为我们的服务器不允许这样做。
答案 0 :(得分:40)
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的建议)