Git 的 proxyAuthMethod 需要代理用户名
当 proxyAuthMethod 设置似乎不起作用时,检查代理用户名、所选方法、环境变量覆盖和 Git 版本。
你添加了 http.proxyAuthMethod,重新尝试克隆,却仍然看到 407。该设置有一个容易忽略的文档条件:配置的代理字符串必须包含用户名。
用户名不必在 URL 中搭配明文密码。Git 可以通过其凭据机制获取缺失的密码。但路由身份与认证方法仍必须指向预期的代理。
同时检查四项输入
- 实际生效的代理 URI(去掉密码)。
- 为该代理选择的方法。
- 任何按 remote 的覆盖,或
GIT_HTTP_PROXY_AUTHMETHOD环境变量覆盖。 - Git 版本及其 HTTP 后端的能力。
当前 Git 文档记录了包括 anyauth、Basic、Digest、Negotiate 和 NTLM 在内的方法。选择其中一种并不会为所连接的后端补上缺失的支持。企业管理员也不应仅仅因为客户端配置了另一种方法就削弱代理的策略。
较早的报告涉及尚未实现所复制选项的版本。任意配置键都可以被写入,却未必有证据表明正在运行的传输会使用它。请阅读对应版本的文档以及经过脱敏的交互记录。
最后,仓库凭据是另一层关系。Git 托管令牌无法满足代理的质询。关闭仓库的 TLS 验证同样不会让代理接受所选的认证方案。先确认这一层交互,然后再诊断随后出现的任何仓库响应。