1

您好,我们正在尝试从本地 Azure DevOps 服务器 2020.0.1 克隆一个 git 存储库。我们正在使用下面的命令,但它不起作用。这应该可能吗?
我尝试遵循的文档是this。但这有点不清楚。

git clone https://{an username:yourPAT}@yourURL/yourOrgName/yourProjectName/_git/yourRepoName

然后我们得到一个错误:“fatal: Authentication failed for”
我们还尝试了类似 'yourname:yourPAT', 'yourPAT', ':yourPAT', 'yourPAT:' 我们想将 PAT 与 SmartGit 一起使用

然后我们尝试使用提到的其他方法(但是当阅读时,只有在使用基本身份验证时才需要,我们从未在我们的 ADOS 服务器上启用它,也不是我们的 IIS 网站上的身份验证方法:

$MyPat = 'yourPAT'
$B64Pat = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":$MyPat"))
git -c http.extraHeader="Authorization: Basic $B64Pat" clone https://{yourURL/yourOrgName/yourProjectName/_git/yourRepoName

这个正在工作

我们创建的 PAT 具有所有组织的全部范围和访问权限。
PAT 正在努力添加代理。
我们还可以使用它来访问 RESTAPI(使用 curl 你应该 -u 和随机或空的用户名,所以 bla;yourPAT)。

任何建议表示赞赏。

4

1 回答 1

1

根据您的描述,当您使用基本身份验证运行 git 命令时,它可以工作。

似乎启用了基本身份验证。

如果为 Azure Devops 服务器启用 IIS 基本身份验证,则 PAT 无效。请参阅使用个人访问令牌启用 IIS 基本身份验证无效

如果您将 Git 与 IIS 基本身份验证一起使用,Git 会中断,因为它需要 PAT 进行用户身份验证。尽管我们不建议您使用 IIS 基本身份验证,但通过向 Git 请求添加额外的标头,您可以将 Git 与 IIS 基本身份验证一起使用:

您可以打开IIS Manager -> IIS -> Authentication 并检查基本身份验证是否已禁用。

在此处输入图像描述

另一方面,您可以从凭据管理器中删除与 Azure DevOps Server 相关的凭据:打开control panel on windows–> Click on User Accounts–> Click on Manage your Credentials–>Click on Windows Credentials,找到远程 git 存储库的条目->单击列表中的项目并选择删除-> 最后尝试再次使用 PAT 克隆一个 git Repo。

于 2021-08-23T02:36:29.387 回答