Git推送:缺少或无效的凭据。对于“https://github.com/username/repo.git”,认证失败,导致致命错误。

66

我尝试在新的MacBook上进行第一次推送,并在git push后遇到了这个错误(在我的旧MacBook上一切正常):

Missing or invalid credentials.
Error: connect ECONNREFUSED /var/folders/tx/53fffl0j51qb47mhnlf8zsdc0000gn/T/vscode-git-1d38026c7f.sock
    at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1056:14) {
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '/var/folders/tx/53fffl0j51qb47mhnlf8zsdc0000gn/T/vscode-git-1d38026c7f.sock'
}
Missing or invalid credentials.
Error: connect ECONNREFUSED /var/folders/tx/53fffl0j51qb47mhnlf8zsdc0000gn/T/vscode-git-1d38026c7f.sock
    at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1056:14) {
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '/var/folders/tx/53fffl0j51qb47mhnlf8zsdc0000gn/T/vscode-git-1d38026c7f.sock'
}
remote: No anonymous write access.
fatal: Authentication failed for 'https://github.com/username/repo.git/'

有什么想法和方法可以解决这个问题吗?

1
你需要在新笔记本电脑上设置连接到Github的凭据。 - Ôrel
1
"缺少或无效的凭据" 我不想草率下结论,但我猜测您的凭据可能缺失或无效。 - matt
2
没有名为user.password的配置键。请参阅文档 - phd
谨慎使用集成的VS Code终端(为了避免此问题,请使用普通终端),可能会遇到以下问题:https://dev59.com/ZFIG5IYBdhLWcg3w2VMZ#63302881 - Andreas L.
@VonC 我原本认为选择最受赞同的答案可以帮助更多的人,但现在我觉得这对你不公平,所以我改回来了。 - one-hand-octopus
显示剩余2条评论
11个回答

126
您正在尝试在VSCode终端中使用Git。 问题出在VSCode的身份验证处理程序上。 要解决这个问题:

  • 打开VSCode文件>首选项>设置
  • 搜索git.terminalAuthentication
  • 取消选项

您需要重新打开终端才能使其起作用。

截至2022年3月,菜单有些变化。以下是如何访问它们的示例: enter image description here

enter image description here


3
我的版本在"vscode / 首选项 / 设置"下,在我的主机设置中:扩展 / git / 终端身份验证。 - commonpike
这里有更多关于该问题的阅读材料:https://dev59.com/ZFIG5IYBdhLWcg3w2VMZ#63302881 - Andreas L.
如果您使用JSON设置文件,请在其中插入以下行:git.terminalAuthentication: false - Andreas L.
6
如果之前成功运行但现在出错了,尝试从新终端运行该命令。我将源存储库重命名,并创建了与原始名称相同的新存储库,这样我就可以将代码推送到一个具有与原始名称相同的空存储库中。但是,它一直报错,所以我只是尝试从新的终端运行 git push -u origin [branchname] 命令,结果成功了 :) - anirudh sharma
不错的解决方案!我正在使用Ubuntu,我在VSCode中禁用了该设置,但是我必须注销并重新登录我的系统以杀死git.vscode.sock,然后一切正常! - mehrdad-mixtape
这很有帮助。我还关闭/重新打开了vscode。当我从vscode同步到DevOps时,系统提示我输入密码。我必须使用Clone > Clone Repository > Generate Git Credentials对话框中生成的密码。请注意,我的git用户名和电子邮件与Devops仓库相对应。 - undefined

33

通过重新加载 VSCode 窗口(按下 shift-control-P 打开命令面板,然后找到 Developer: Reload Window 并按下 Enter)解决了我的问题。


5
在重新加载窗口之前,请在新终端中尝试运行该命令。 - anirudh sharma
1
谢谢@anirudhsharma,新的终端技巧对我很有用。 - Devashish Prasad

26
如果您使用的是Linux操作系统,只需要在命令前面添加"sudo"。否则,您需要在命令前面添加管理员前缀。

解决了我的问题,但仍然在想,这是否与Python环境(base)有任何关系?因为我正在使用VS Code。 - Budi Mulyo
我不确定,但我认为这与Python环境无关。 - Triệu Phong
尝试在新终端上运行该命令,因为这对我有效 :) - anirudh sharma

16

marpo-it答案中所述,设置git.terminalAuthentication可以取消选择(自VSCode 1.45以来

setting

这将避免在终端中调用Git命令(例如git push)时自动验证您的GitHub账户。


原始答案:

我使用 git config user.name "你的用户名" 和 git config user.password "你的密码" 设置了凭据,并且可以通过运行 git config --list 查看这些凭据,那么我还缺少什么?

这些不是“凭据”:它们无法帮助您向 GitHub 等远程服务进行身份验证。

对于 HTTPS URLS(https://github.com/<me>/<myRepo>),您需要:

在这里,您将输入实际的凭据:

  • 您的 GitHub 用户帐户名称
  • 您的 GitHub 用户帐户密码(如果您已启用 2FA,则为 PAT

但是,如果今天问题消失了,那么这与此 GitHub 事件相关


Andreas L还提到在评论中,尝试从集成的VS Code终端进行身份验证可能会很棘手。
正如在“git push origin master 丢失或无效凭据”和这里所详细说明的那样:

If you work with the JSON-settings file, insert the following line into it:

git.terminalAuthentication: false,

1
非常奇怪,重启我的 MacBook 后,一切都正常了。 - one-hand-octopus
@thinkvantagedu 这个链接是关于 https://www.githubstatus.com/incidents/j597fw8kv04c 的。 - VonC
1
之前一切都很正常,这个问题出现在我没有做任何更改的情况下。取消选中“终端身份验证”选项,重新加载终端,然后再次选中该选项并重新加载终端,问题就解决了。 - BibekStha
@VonC git 版本 2.24.1 - BibekStha
@BibekStha 有没有更新远程机器上的Git的机会? - VonC
显示剩余6条评论

1
在我的情况下,我得到了这个错误,因为我试图推送到一个HTTPS远程。

https://github.com/USER/REPO.git

但是相反,我必须前往GitHub上的存储库并复制SSH地址,它看起来像这样

git@github.com:USER/REPO.git


1
事情进行得非常顺利 - Edward Casanova

0

我遇到了类似的问题。我不得不按照以下方式修改git配置:

[credential]
        helper = manager

之前它被设置为wincred。


0

这种情况偶尔会发生。我在win 11上运行vscode时,所有交互(克隆、推送等)都会收到相同的响应“缺少或无效凭据”。我尝试了各种解决方案,但都没有成功。

我仍然可以生成存储库密码,并从命令行中使用git clone(例如),在提示时复制密码。但这并不是理想的解决方法。

我发现最简单和可靠的解决方法是重新安装Git Credential Manager Core。它包含在Git for Windows中。安装Git Credential Manager Core的推荐方式是只安装Git for Windows,虽然也有一个独立的安装程序,但似乎使用Git for Windows安装更简单,可以与最新版本保持一致。重新安装后,我的凭据会被自动识别,无需再次输入。


0
如果您正在使用Windows 10。 前往控制面板并搜索Windows凭据管理器。 在那里,您可以找到Git / bitbucket网址 从那里,您可以单击编辑并更改您的凭据。

0

-1
我也遇到了同样的错误,但后来发现我打开了两个终端。我已经在旧终端上配置了所有内容,所以在新的VSCode终端上似乎无法进行推送。最好检查一下是否打开了多个终端,而这些终端尚未配置为使用git。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接