尝试推送 git 并收到“无法读取 'https://github.com' 的用户名:终端提示已禁用”

Posted

技术标签:

【中文标题】尝试推送 git 并收到“无法读取 \'https://github.com\' 的用户名:终端提示已禁用”【英文标题】:Attempting push on git and receiving "could not read Username for 'https://github.com': terminal prompts disabled"尝试推送 git 并收到“无法读取 'https://github.com' 的用户名:终端提示已禁用” 【发布时间】:2017-08-12 10:49:12 【问题描述】:

我正在使用 Visual Studio 和 GitHub 扩展。我可以登录,然后克隆我团队的存储库,然后成功拉取更改。

当需要将我的更改推送回远程时,我会在屏幕上短暂出现一个空白命令提示符,然后在输出窗口中出现以下错误:

推送到远程存储库时遇到错误:Git 因致命错误而失败。

致命:遇到 AggregateException。发生一个或多个错误。

错误:无法生成 askpass:没有这样的文件或目录

致命:无法读取“https://github.com”的用户名:终端提示已禁用

编辑:通过命令行推送和通过 GitHub 桌面应用程序推送一样有效,只是不在此扩展中。

任何想法为什么会发生这种情况?鉴于我已登录扩展程序,我看不出它为什么需要用户名。

【问题讨论】:

您使用密码扩展吗?它可能会阻止用户访问控制。您还可以修改您的远程 URL 以包含您的用户名。 ***.com/questions/6565357/… @TaylorAckley 谢谢,我以为我尝试了其他问题中的所有内容,但没有看到这个隐藏起来。将用户名添加到远程 url 是唯一有效的方法(我没有密码扩展或类似的异常)。如果您将其添加为答案,我会接受。 我能够通过获取“访问令牌”凭据(适用于 Visual Studio 和 Azure-Devops)并重新启动托管 Visual Studio 的计算机来解决此问题。我不知道这是否是一个通用的解决方案。 【参考方案1】:

根据我的评论。您可以在远程 URL 中包含您的用户名(类似于 FTP)。

无密码示例(SSH):

git remote set-url origin git@github.com/username/repo.git

密码示例(https)

https://name:password@github.com/username/repo.git

来源:Git push requires username and password

2018 年 5 月 14 日更新,将原始答案中的 github.org 更正为 github.com

【讨论】:

其实 git remote set-url origin username:password@github.com/username/repo.git 但还是谢谢。把我从系统管理员那里救出来。 另外,将密码放入repo url时,需要将特殊字符替换为对应的URL编码值,例如:myp@ssword --> myp%40ssword @Morgs 看到上面来自 maximus 的评论。【参考方案2】:

检查 Windows 是否没有挂起的更新。如果是,请更新并重新启动。

【讨论】:

这是给我的。在允许我进行推送之前,需要更新 Visual Studio。【参考方案3】:

这对我有用:

删除文件 %localAppData%\GitCredentialManager\tenant.cache,然后重新尝试登录。

【讨论】:

【参考方案4】:

在 Windows 中转到凭据管理器并检查通用凭据列表是否包含以下内容 条目

git:https://github.com

https://github.com

如果这些条目不存在,请使用用户名和密码添加这些条目,它应该可以工作。

【讨论】:

【参考方案5】:

同步时发生在我身上。将 Visual Studio 更新到最新版本对我来说是这样。

【讨论】:

【参考方案6】:

对我有用的是断开与 Visual Studio 中所有现有连接的连接,一个接一个地删除它们并从头开始连接。然后我立即能够再次克隆存储库。

【讨论】:

【参考方案7】:

使用 Windows 凭据管理器

在 Windows 凭据管理器中查看用户名、密码后,将 git config 设置为从凭据管理器中读取。打开 gitbash,运行命令:git config --global --add credential.helper manager

【讨论】:

【参考方案8】:

在我的电脑上只启用了 TLS1.2 后,我遇到了同样的问题。启用 TLS 1.1 后,SSL.x 问题得到解决。为了启用和禁用,我使用了 IISCrypto 软件。希望对团队和其他用户有所帮助。

【讨论】:

【参考方案9】:

在我的情况下,同样的问题出现在以下场景中:

我们在公司网络下。所以我们有自己的代理。当我们尝试克隆时,由于同样的错误,我们无法下载。

我在我们的 git 配置中添加了代理 url。

[http]
 proxy=http://YourNameHere:YourPasswordHere@proxy.aaa.com:6050/
 sslVerify = false

[https] 
proxy=http://YourNameHere:YourPasswordHere@proxy.aaa.com:6050/
 sslVerify = false

问题消失了,我可以做所有的 git 操作。

【讨论】:

对于阅读本文的其他人,请注意 sslVerify - false 它会带来安全风险并让您面临中间人攻击。这对 Andi 来说可能是一个有效的解决方案,但并不适合所有人,所以请小心。一个更强大的企业环境解决方案是将代理证书添加到受信任的根证书中(单独讨论)。【参考方案10】:

我已更新我的 Visual Studio 2017 并重新启动它。 现在它工作正常了。My updated Visual studio version:

【讨论】:

欢迎来到 SO!请阅读tour和How do I write a good answer? 对我来说,重启 VS 2019 也解决了。

以上是关于尝试推送 git 并收到“无法读取 'https://github.com' 的用户名:终端提示已禁用”的主要内容,如果未能解决你的问题,请参考以下文章

设置 git 拉取和推送所有分支

多个github帐户错误

Eclipse:尝试克隆 CodeCommit 存储库并收到以下错误:“...git-upload-pack not allowed on...”

Visual Studio 2017 - Git 因致命错误而失败

TortoiseGit尝试推送时要求我输入密码

当标签已经存在于远程时​​,Git 强制推送标签