AD切换NTLM V2后RHEL7执行Git Clone到AzureDevOps认证失败求助
解决RHEL7下AD NTLMv2模式Git Clone Azure DevOps认证失败的办法
方案1:升级Git及依赖库以支持NTLMv2
RHEL7默认Git版本偏旧,对NTLMv2的支持存在缺陷,可通过升级解决:
- 启用EPEL仓库(未启用时):
yum install epel-release - 安装兼容RHEL7的新版Git:
yum install git224(可根据实际情况选择对应版本包) - 更新相关依赖库:
yum update libcurl krb5-workstation
升级完成后重新尝试Git Clone操作。
方案2:配置Git强制使用NTLMv2认证
通过Git配置强制指定认证版本:
- 全局生效配置:
git config --global http.ntlmv2 true - 单仓库生效配置:进入目标仓库目录后执行
git config http.ntlmv2 true
该配置会让Git在NTLM认证时直接使用v2版本,避免自动降级到v1。
方案3:改用Kerberos认证替代NTLM
AD启用NTLMv2后通常也支持Kerberos,这是更安全且RHEL7兼容更好的认证方式:
- 确保RHEL7已加入AD域,且
/etc/krb5.conf中AD域配置正确 - 获取Kerberos票据:
kinit username@AD.DOMAIN.COM(替换为实际域账号和域名) - 配置Git使用Kerberos:
git config --global http.sslVerify false(根据Azure DevOps证书情况调整),之后直接执行Git Clone即可自动使用票据认证
方案4:调整Samba客户端配置强制NTLMv2
修改/etc/samba/smb.conf文件,在[global]段添加以下配置:
client NTLMv2 auth = yes client lanman auth = no client plaintext auth = no
保存后重启Samba服务:systemctl restart smb nmb
此配置会强制Samba客户端优先使用NTLMv2,修复Git调用底层认证库时的版本匹配问题
注意:Kerberos认证是长期最优解,安全性和兼容性优于NTLM;方案1、2适合快速解决Git特定认证问题;方案4会影响所有依赖Samba的服务,需测试后再部署。
内容的提问来源于stack exchange,提问作者Akhil S
相关产品推荐
相关产品推荐

