CentOS 7环境克隆TFS私有仓库提示身份验证失败问题咨询
问题根因
该问题是CentOS 7系统特有兼容性问题,和git版本无关,核心原因如下:
- CentOS 7官方源自带的
libcurl库编译时未完整启用NTLMv2协议支持,而你使用的TFS服务器要求NTLMv2认证,直接拒绝了旧版NTLM协议的认证请求 - CentOS 7默认的系统加密策略禁用了NTLM认证依赖的弱哈希算法,导致认证握手阶段直接失败
- git默认未指定针对TFS站点的认证方式,会优先尝试其他不兼容的认证逻辑导致失败
解决方案
1. 安装支持NTLMv2的curl依赖
首先安装epel源提供的完整支持NTLMv2的curl组件:
# 安装epel扩展源 yum install -y epel-release # 升级curl及对应的libcurl库 yum update -y curl libcurl libcurl-devel
安装完成后执行命令验证NTLM支持:
curl -V | grep NTLM
输出包含NTLM字样即为支持正常。
2. 配置git指定TFS站点的认证方式
执行命令全局配置对应TFS域名的认证方式为NTLM:
git config --global http.https://tfs.orgname.com.authMethod ntlm
注意:如果你的账号属于AD域,输入用户名时需要填写
域名\用户名格式,否则也会触发认证失败。
3. 调整系统加密策略(针对仍报错的场景)
如果完成前两步后仍然认证失败,执行命令调整系统加密策略放开NTLM依赖的算法限制:
update-crypto-policies --set LEGACY
执行完成后重启系统生效。
4. 验证操作
重新执行git克隆、curl/wget带认证参数的访问请求,即可正常完成认证。
内容的提问来源于stack exchange,提问作者Tony23
相关产品推荐
相关产品推荐

