登录失败,在 Azure DevOps 中使用 ctrl+c 取消对 Git 的基本凭据提示
Posted
技术标签:
【中文标题】登录失败,在 Azure DevOps 中使用 ctrl+c 取消对 Git 的基本凭据提示【英文标题】:Logon failed, use ctrl+c to cancel basic credential prompt to Git in Azure DevOps 【发布时间】:2019-09-10 03:25:30 【问题描述】:当将 Azure Repos 中的 git 存储库克隆到我的本地计算机时,克隆成功,但我收到一行内容:
Logon failed, use ctrl+c to cancel basic credential prompt
不确定这是指什么,有什么想法吗?
我正在使用 PAT 令牌来验证我的克隆,命令是:
git clone https://*************PAT*************@dev.azure.com/orgname/projectname/_git/reponame
【问题讨论】:
安装Git Cred Man再试一次 当您说 PAT 令牌时,它是否在此处生成:https://orgName.visualstudio.com/_usersSettings/tokens 【参考方案1】:您可以尝试 3 件事来解决此问题
-
尝试使用 Visual Studio 的管理员模式。
下载最新的 git 凭证管理器
将 //.vs//DesignTimeBuild/.dtbcache.v2 添加到 git 忽略
【讨论】:
您好,可以恢复旧问题,但下次您可能需要查看其他答案并检查主要问题是否已解决。干杯。【参考方案2】:如果 git 没有更新到最新版本,就会发生这种情况。
请更新 git,一切顺利。
要更新 git,只需根据您使用的操作系统类型执行以下命令:
Windows:git update-git-for-windows
Linux/Unix:git update
或点击以下链接获取适用于您操作系统的 git 客户端的最新副本
https://git-scm.com/downloads
【讨论】:
我怎样才能将 git 更新到最新版本?请将此也添加到您的答案中,以便更清楚问题是什么以及如何解决它。 打开 cmd 并输入 ---> git update-git-for-windows 可笑的是提示不会只是告诉你更新...... 为我工作谢谢:) 这个错误非常具有误导性。发生在我身上,然后更新解决了这个问题。【参考方案3】:你只需要更新你的 git。 打开终端并输入 在 Windows 中
git update-git-for-windows
其他
git 更新
【讨论】:
【参考方案4】:在我的本地机器上使用从 Azure DevOps 存储库克隆的 git 存储库时,我遇到了类似的问题。
初始克隆有效,我可以毫无问题地拉/推,直到我必须使用 azuread/adfs 重新进行身份验证,因为会话最终到期。 Git 会正确提示 azure 登录页面,我可以成功地对我们的租户进行身份验证,但 Git 会出现基本凭据提示错误并出现“登录失败,使用 ctrl+c 取消基本凭据提示”。
我发现解决此问题的唯一方法是通过浏览器登录到 Azure DevOps(我的会话也将过期),然后再次使用 git 进行身份验证,这使得它可以工作。
【讨论】:
【参考方案5】:如果您使用的是 github 存储库,您可能需要检查您是否没有在 github 应用程序设置中删除 Azure Pipelines 的权限:
在您的 github 配置文件设置、应用程序、Azure Pipelines、配置 然后在 Repository Access 中,检查是否选择了所有具有管道的存储库。【讨论】:
【参考方案6】:我们公司有 2 个域可供我们访问 DevOps:
https://vso[companyname].visualstudio.com
和
https://dev.azure.com/vso[companyname]
在 repos .gitsubmodule 文件中,我将 URL 从一个更改为另一个,构建神奇地开始工作。
【讨论】:
【参考方案7】:Git http.extraheader & Bearer
Manual 的回答帮助我走上了正轨。
YAML 风格的管道可以使用预设变量System.AccessToken。在检查了流水线开头的正式“结帐...”步骤后,我发现此步骤可以在我的脚本中使用:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: 'git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" clone --depth 1 https://my-org@dev.azure.com/my-org/my-proj/_git/my-repo'
请注意,Azure DevOps job authorization scope 可能会影响这一点
【讨论】:
【参考方案8】:我认为问题在于您不允许您的代理作业访问身份验证令牌。 尝试为代理作业检查此选项:
【讨论】:
【参考方案9】:只需要从 azure 创建凭据。 单击克隆->单击 git 凭据->它将创建用户名和密码。在詹金斯工作中使用此密码。它会工作
【讨论】:
【参考方案10】:在这种情况下,您实际上有两组正在使用的凭据,Git 尝试了一组但失败了,然后又退回到另一组。在 Windows 上调用凭据管理器时会出现此提示,以防出现提示并且您需要输入一些凭据。
当您在这种情况下将 PAT 放入 URL 中时,您需要将 PAT 作为密码。这意味着您需要指定用户名,因此您的 URL 应该以 https://username:password@dev.azure.com/
之类的开头。从您的帖子中不清楚您是否有 username:
部分,所以如果您不确定添加一个(在这种情况下可以是任何东西;token
和您的用户名很常见)。
如果您没有该表单的 URL,则说明您的 PAT 没有被使用,您可能会退回到凭证管理器中的任何内容,这是正确的。否则,Git 可能更喜欢您的凭证管理器中不正确的内容,然后退回到正确的内容。无论哪种方式,您都应该检查 Windows 凭据管理器中的凭据并删除任何不正确的凭据。
【讨论】:
以上是关于登录失败,在 Azure DevOps 中使用 ctrl+c 取消对 Git 的基本凭据提示的主要内容,如果未能解决你的问题,请参考以下文章
Azure Devops 私有构建代理在 nuget 还原任务中失败
MSBuild 在调试配置中工作,但在 azure devops 中发布失败
Azure Devops maven 构建在声纳 qube 实例中失败