gpt4 book ai didi

windows - 如何从公司代理后面从 github 克隆

转载 作者:可可西里 更新时间:2023-11-01 12:43:04 29 4
gpt4 key购买 nike

我背后有一个非常烦人的公司代理:

  1. 实际使用的代理地址由脚本决定
  2. 需要身份验证
  3. 替换使用HTTPS的网页证书

如何在这种情况下成功克隆一个github仓库?

最佳答案

  1. 第一个问题与 git 并没有真正的关系——它更像是能够实际配置代理的必要步骤。
    Windows 计算机上的代理配置可以在控制面板 -> Internet 选项 -> 连接 -> LAN 设置中找到。
    如果勾选“使用自动配置脚本”,首先需要下载指定的文件并打开。我得到一个包含小脚本的文件。它看起来像这样:

    function FindProxyForURL(url, host)
    {
    var myip = myIpAddress();
    var hostip = dnsResolve(host);
    if (isInNet(hostip,"192.168.0.0","255.255.0.0"))
    return "DIRECT";
    if (isInNet(hostip,"xyz.abc.0.0","255.255.0.0"))
    return PROXY special-proxy:8080;
    return "PROXY default-proxy:8080";
    }

    因此,在我的例子中,要使用的代理是 default-proxy:8080 .

  2. 要真正让 git 使用代理,我必须使用 git config --global http.proxy http://<domain>\<username>:<password>@default-proxy:8080 .

    这样做的明显缺点是您的域密码将以纯文本形式存储在硬盘上。

    其他设置不起作用,尽管不同的来源声称它们应该起作用。那些是:

    1. 设置环境变量 https_proxyhttp_proxyhttp://<domain>\<username>:<password>@default-proxy:8080
    2. 将全局 git 配置设置为该值:git config --global https.proxy http://<domain>\<username>:<password>@default-proxy:8080
    3. 设置环境变量http_proxyhttp://<domain>\<username>:<password>@default-proxy:8080
  3. 要解决第三个问题,最简单的方法是通过设置环境变量来忽略证书错误 - 代理返回的证书无论如何都不值钱:

    set GIT_SSL_NO_VERIFY=true

要不在 git 配置中存储明文密码,您可以使用本地代理,例如cntlm .

它允许存储密码散列。要获取哈希,请使用此命令:

cntlm.exe -H -d <domain> -u <username>

之后,系统会提示您输入密码。结果将是三个哈希值的列表,其中 PassNTLMv2在这种情况下最有可能是相关的。替换 Password cntlm.ini 中的行与输出中的行,包括 PassNTLMv2部分。

显然,现在您必须配置 git 来使用这个本地代理。

关于windows - 如何从公司代理后面从 github 克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15157685/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com