You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SourceTree、GitLab与TeamCity结合Git LFS使用时持续出现身份验证问题

问题根因定位

你的问题核心是网络架构调整后,两个出口(普通网络/VPN网络)的公网IP不同,GitLab的身份校验会话绑定了请求IP,同时Git LFS默认走HTTPS接口拉取大文件:即使仓库配置了SSH协议,Git LFS默认仍会调用HTTPS端点进行身份校验,这就导致IP切换后原有HTTPS凭证会话失效,出现固定半小时失效的403错误。

本地环境修复方案

1. HTTPS协议修复方案(推荐,彻底解决切换网络失效问题)

  • 第一步:清空所有现有Git凭证,执行命令git config --global --unset credential.helper,再手动删除Windows凭证管理器里所有gitlab.com相关的条目,确保无残留。
  • 第二步:配置Git凭证缓存支持多场景,执行git config --global credential.helper manager-core,Windows新版Git自带的Git Credential Manager Core支持跨网络场景的身份刷新,不会绑定会话IP。
  • 第三步:给Git LFS配置独立的身份校验规则,执行git config --global lfs.https://gitlab.com/.accessbasicAuth true,强制Git LFS调用Git的全局凭证管理器获取PAT,不要单独缓存凭证。
  • 第四步:验证配置:随便找一个仓库执行git lfs pull,如果提示输入凭证,输入GitLab账号,密码字段填你之前生成的PAT即可,后续切换网络不会再出现403失效问题。

2. 现有SSH配置遗留问题修复

如果你坚持用SSH协议,可解决两个现存问题:

  • 自动加载Putty私钥:打开Putty的Pageant工具,右键点击托盘图标选择「Add Key」,选中你的私钥后,在Pageant设置里勾选「开机自动启动」,同时把私钥路径添加到Pageant的自动加载列表,无需每次手动添加。
  • Git LFS SSH协议下身份告警修复:执行两个命令,第一个git config --global lfs.gitlab.com.access ssh,强制Git LFS走SSH协议校验身份,不要调用HTTPS端点;第二个git config --global lfs.https://gitlab.com/PROJECTPATH.git/info/lfs.locksverify true,关闭锁验证提示,后续推送不会再出现告警。
TeamCity流水线修复方案

你的TeamCity报错核心是构建代理的Git LFS默认走HTTPS端点拉取文件,没有拿到有效凭证,修复步骤:

  • 第一步:在TeamCity的构建配置页,找到「版本控制设置」,点击你绑定的GitLab仓库的编辑按钮,把「LFS 传输协议」从默认的「自动」改为「SSH」。
  • 第二步:在构建代理的环境变量里添加GIT_LFS_SKIP_SMUDGE=1,先跳过拉取代码时的自动LFS拉取,然后在构建步骤的最前面加一个执行命令行的步骤,执行git lfs pull --ssh,强制走SSH拉取LFS文件。
  • 第三步:如果还是报错,就给构建代理的全局Git配置添加LFS的身份规则,执行git config --system lfs.https://gitlab.com/.accessToken 你的GitLab PAT,直接给LFS配置全局可用的PAT凭证,不需要依赖SSH会话。

内容的提问来源于stack exchange,提问作者bts_slawa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 17:27:01