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

VSCode向GitHub发布分支遇认证失败及.git后缀异常求助

问题与解决方案

问题详情

原始问题

已配置VSCode通过SSH访问网站服务器仓库,可正常修改服务器代码,但尝试通过VSCode的「Publish Branch」功能向GitHub发布分支时弹出错误窗口。GitHub上已创建对应名称的空仓库,但无文件上传。Git日志输出:

remote: Repository not found.
fatal: Authentication failed for 'https://github.com/DrunkenTyromancer/domainname.ext.git/'

且远程地址被自动添加了.git后缀,不符合预期。有以下疑问:

  1. 为何远程地址会自动添加.git后缀?
  2. 如何分步解决该问题?(仍在学习阶段)
  3. 认证失败是否还有其他原因(如SSH密钥对配置错误)?

补充:可通过VSCode编辑服务器代码,也能通过GitHub Desktop从服务器拉取代码,但无法通过VSCode向GitHub发布分支作为备份及协作仓库。原本预期「Publish Branch」功能会将本地仓库/home/accountname/public_html/projectname/发布到GitHub仓库GitHubUserName/projectname/,而非GitHubUserName/projectname.git/,且若GitHub已创建对应仓库,不应出现认证失败的报错。

更新记录

更新1

移除了远程地址中的.git后缀,重新添加远程URL后,收到提示:Please make sure you have the correct access rights and the repository exists. Git日志显示相关命令执行记录。

更新2

在生产服务器上添加了部署密钥对,并将公钥复制到GitHub(也添加到了本地笔记本的SSH密钥存储中),但出现新报错;创建分支副本后又出现另一个报错。认为针对新手的相关文档需要优化。


解答

1. 远程地址自动添加.git后缀的原因

.git是Git远程仓库的标准后缀,GitHub的仓库底层都是用带这个后缀的地址完成数据传输——哪怕网页上显示的仓库地址不带后缀,Git实际交互时也会默认补全。VSCode的「Publish Branch」基于Git核心逻辑实现,所以自动加后缀属于正常行为,不会影响仓库的访问和操作,无需纠结这个点。

2. 分步解决认证失败问题

步骤1:确认远程仓库URL正确性

先检查当前远程地址是否正确:

  • 进入本地仓库目录,执行命令查看远程地址:
    git remote -v
    
  • 如果地址错误,先移除旧远程,再添加正确的SSH格式地址(推荐用SSH,避免HTTPS的认证坑):
    git remote remove origin
    git remote add origin git@github.com:你的GitHub用户名/仓库名.git
    

步骤2:验证SSH密钥有效性

既然配置了SSH密钥,先测试能否正常连接GitHub:

  • 执行测试命令:
    ssh -T git@github.com
    
  • 如果返回Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.,说明密钥没问题;如果报错,检查这几点:
    • 服务器上的私钥权限必须设为600(执行chmod 600 ~/.ssh/id_rsa修改)
    • GitHub上的公钥和服务器生成的完全一致(用cat ~/.ssh/id_rsa.pub查看公钥内容对比)
    • 本地笔记本的SSH代理已加载密钥(执行ssh-add -l查看已加载的密钥列表)

步骤3:检查仓库权限与名称

  • 确认你在GitHub上有该仓库的写入权限(个人仓库默认有,组织仓库需管理员分配)
  • 仓库名称要完全匹配,包括大小写(GitHub仓库名称区分大小写)

步骤4:重新尝试推送

完成上述步骤后,要么在VSCode里重新点击「Publish Branch」,要么用终端手动推送:

git push -u origin 你的分支名

3. 认证失败的其他可能原因

  • HTTPS缓存冲突:如果之前用HTTPS访问过GitHub,Git可能缓存了旧的认证信息,导致SSH连接失败。清除缓存:
    git config --global --unset credential.helper
    
  • 部署密钥权限限制:部署密钥默认是只读的,如果要推送代码,必须在GitHub添加密钥时勾选「Allow write access」
  • VSCode SSH配置问题:VSCode的远程SSH配置可能未指定正确的密钥路径,可在~/.ssh/config里添加:
    Host 服务器别名
      HostName 服务器IP/域名
      User 服务器用户名
      IdentityFile ~/.ssh/你的密钥文件名
    

内容的提问来源于stack exchange,提问作者Mr.President

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 14:03:14