登录失败,在 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,只需根据您使用的操作系统类型执行以下命令:

Windowsgit update-git-for-windows

Linux/Unixgit 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 还原任务中失败

托管代理失败的 Azure DevOps 构建管道

MSBuild 在调试配置中工作,但在 azure devops 中发布失败

Azure Devops maven 构建在声纳 qube 实例中失败

Azure Devops OnPremise,致命:克隆 Git 存储库时身份验证失败

如何在 Azure DevOps Server 2020 中为 C#10 / .NET 6.0 项目创建构建任务