我位于通过代理访问互联网的公司网络中。例如,我通过浏览器(Firefox、Chrome...)连接到互联网
问题是,当我尝试从终端连接并像这样export
设置(http
和https
)的配置时:
export http_proxy=http://user:password@ip:port
我尝试制作如下 git clone :
git clone https://github.com/octocat/Spoon-Knife
我得到:
克隆成‘勺刀’......
致命:无法访问'https://github.com/octocat/Spoon-Knife/':CONNECT 后从代理收到 HTTP 代码 407
需要注意的事项
- 我尝试使用 curl 等其他命令进行访问
curl www.google.com
,但仍然
错误代码:407 需要代理身份验证。ISA 服务器需要授权才能完成请求。拒绝访问 Web 代理筛选器。(12209)
- 就像我说的,我的浏览器网络连接很好。所以这不是连接问题。
- 我的密码中唯一的特殊字符是 ,
*
我使用 正确地对其进行了转义%2A
。
答案1
您确定您的代理使用的是基本身份验证吗?它可能是 NTLM,即 ISA。
并不是 100% 确定 git 如何处理代理及其身份验证,但是如果我们可以让 curl 工作,我们就有一半的机会让 git 恢复正常运行。
你可以尝试使用 ntlm,如果不行的话,在命令行上使用 curl - 查看手册页这里,但你需要
--proxy-ntlm
和
-U 用户:密码
小心地转义密码中的“*”(或更改它,至少是暂时更改,以便于故障排除)
如果是 NTLM,那你使用 git I 就没那么幸运了思考- 但Stack Overflow 上的一个问题建议在你的本地机器上使用中间代理 -中央管理办公室- 我曾用它对无法进行身份验证的其他软件进行 NTLM 包装。