Linux环境下Git使用NTLM代理克隆GitHub仓库再次遇阻
解决Linux下通过NTLM代理克隆GitHub仓库的问题
我来帮你排查这个困扰——NTLM代理的认证机制和普通HTTP代理不一样,Git默认的配置没法直接处理,光靠.gitconfig里填账号密码肯定行不通,得用个中转工具来搞定NTLM的认证流程。下面是我亲测有效的步骤:
第一步:安装NTLM代理中转工具cntlm
Linux上最常用的就是cntlm,它能帮你处理NTLM的认证,把本地请求转换成符合代理要求的格式。根据你的发行版执行安装命令:
- Ubuntu/Debian系:
sudo apt update && sudo apt install cntlm - CentOS/RHEL系:
sudo yum install cntlm
第二步:配置cntlm
编辑cntlm的配置文件/etc/cntlm.conf,找到并修改以下字段:
# 你的NTLM代理账号 Username your-username # 你的域(如果代理需要的话) Domain your-domain # 代理服务器的IP和端口 Proxy proxy-ip:proxy-port # 本地监听的端口(随便选一个没被占用的,比如3128) Listener 3128
关键步骤:生成NTLM认证哈希(避免明文密码)
不要直接在配置文件里写明文密码,运行下面的命令生成认证哈希:
cntlm -M http://github.com
按照提示输入你的代理密码,命令会输出类似PassNTLMv2 xxxxxxx的行,把这行复制到cntlm.conf里,替换掉原来的Password字段。
第三步:重启cntlm服务
让配置生效:
sudo systemctl restart cntlm # 确认服务正常运行 sudo systemctl status cntlm
第四步:修改Git代理配置
现在把Git的代理指向本地的cntlm服务,修改.gitconfig(全局配置的话是~/.gitconfig):
[http] sslVerify = true # 建议开启,除非你完全信任代理服务器 proxy = http://127.0.0.1:3128 [https] sslVerify = true proxy = http://127.0.0.1:3128
第五步:测试克隆
现在试试克隆仓库:
git clone https://github.com/your-username/your-repo.git
额外排查点
如果还是不行,可以试试这些:
- 检查
cntlm日志:sudo journalctl -u cntlm,看有没有认证失败的信息 - 确认本地端口没被占用:
netstat -tulpn | grep 3128 - 有些NTLM代理需要工作站名称,在
cntlm.conf里添加Workstation your-workstation-name字段
内容的提问来源于stack exchange,提问作者halloleo
相关产品推荐
相关产品推荐

