【问题标题】:Pass username and password for git pull传递 git pull 的用户名和密码
【发布时间】:2014-05-03 08:09:15
【问题描述】:

有没有办法为 git pull 提供用户名和密码作为命令行参数?在svn中有类似的东西:

svn up --no-auth-cache --username $SVN_USER --password $SVN_PASSWORD

在 git 中有没有类似的东西?我无法将凭据存储在文件系统上。

基本上,我有一个为多个相关项目运行构建的脚本。因为脚本在共享服务器上并且由不同的用户运行,所以我无法将凭据存储在服务器上。我不想提示用户,因为脚本使用单个用户名/密码从多个 SVN/GIT 存储库中获取数据,所以我想通过脚本读取一次凭据,然后将它们传递给 git pull 或 svn up 命令

【问题讨论】:

    标签: scripting passwords git-pull


    【解决方案1】:

    如果您使用的是 HTTPS,this answer 中可能有解决方案:

    安全的方法是在您要提取的 url 中包含凭据,https://user:password@server.com/path/to/repo。显然,您的凭据最终会在 .git 文件夹和/或日志文件中以纯文本形式出现。

    安全的方法是在 git 中配置一个“凭证助手”。然后它会在使用凭证后记住它们。它将凭据安全地存储在机器上,但如果您使用系统范围的配置,它们将应用于所有用户。例如,对于 Windows 上的 msysgit,我会使用 wincred 助手:git config --system credential.helper wincred。我的理解是--system 为系统上的所有存储库和所有用户打开凭据助手,因此您必须确定这是否适合您的服务器。免责声明:我之前只使用过 --global 。

    我没有看到更好的选择适合你的情况,但一些真正的 git 大师可能会加入。

    【讨论】:

    • 很遗憾,我不想将密码存储在任何地方
    • 那么,脚本必须以其他用户身份登录机器运行git pull,但不允许这些用户手动运行命令?对于任何程序,包括 SVN,这听起来都不可能安全地做到。你找到方法了吗?
    • 1.对于所有构建,我们都有一个 OS 用户 2. 不同的物理用户不应该有权访问其他用户的 git 帐户,如果使用凭证助手就会发生这种情况。我将发布我的解决方法。
    猜你喜欢
    • 2019-04-03
    • 2018-02-06
    • 2016-07-01
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2018-07-18
    相关资源
    最近更新 更多