You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

GitLab初次提交代码遇凭据要求,SSH正常但HTTP认证失败求助

解决Git HTTPS推送认证失败及Visual Studio连接问题

你的SSH密钥配置是正常的,但当前远程仓库用的是HTTPS协议——这两种协议采用完全独立的认证机制,所以SSH能成功连接不代表HTTPS可以直接用密码登录。下面分两种方案帮你解决问题:

方案1:切换到SSH远程地址(推荐,适配已配置好的密钥)

既然SSH已经能正常验证身份,直接把远程仓库地址改成SSH格式就能跳过凭据输入:

  • 先查看当前远程地址,确认是HTTPS格式:
    git remote -v
    
    你会看到类似输出:
    origin  https://gitlab.example.com/name.surname/project.git (fetch)
    origin  https://gitlab.example.com/name.surname/project.git (push)
    
  • 修改为SSH地址:
    git remote set-url origin git@gitlab.example.com:name.surname/project.git
    
  • 再次验证地址是否修改成功:
    git remote -v
    
  • 现在执行推送命令:
    git push --set-upstream origin master
    
    这次会自动调用你的SSH密钥完成认证,不会再要求输入用户名和密码。

方案2:继续使用HTTPS,改用个人访问令牌(PAT)认证

多数企业级GitLab实例会禁用密码直接用于HTTPS Git操作,必须用**个人访问令牌(PAT)**替代密码:

  1. 登录GitLab网页端(https://gitlab.example.com),点击右上角头像 → SettingsAccess Tokens
  2. 填写令牌名称(比如Git HTTPS Auth Token),设置过期时间,然后勾选必要权限:至少需要read_repositorywrite_repository(首次推送必须开启写入权限)
  3. 点击Create personal access token,复制生成的令牌(务必立刻保存,刷新页面后将无法再次查看)
  4. 回到终端执行推送,当提示输入用户名时填你的GitLab用户名name.surname,密码输入刚才复制的PAT
  5. 如果想让Git自动记住凭据、避免重复输入,执行:
    git config --global credential.helper store
    

Visual Studio中的适配方法

  • 如果你用了方案1切换到SSH,VS会自动识别并调用你的SSH密钥,推送时不会再弹出凭据输入框
  • 如果继续使用HTTPS:在VS推送时,用户名填name.surname,密码填你生成的PAT
  • 如果VS仍弹出认证错误,可能是保存了旧的错误凭据:打开Windows凭据管理器(控制面板 → 用户账户 → 凭据管理器 → Windows凭据),删除所有与gitlab.example.com相关的条目,然后重新推送并输入正确信息

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

火山引擎 最新活动