Azure Git的身份验证失败

时间:2016-01-17 10:11:33

标签: git azure azure-web-sites

我正在尝试在Azure中克隆我的webapp。

当我运行git clone https://username@appname.scm.azurewebsites.net:443/appname.git时,终端会要求我输入密码。

但是当我填写密码时,它一直说认证失败了。

即使我在Portal中多次更改了密码(设置 - >设置部署凭据)。

它一直说我的身份验证失败了吗?

24 个答案:

答案 0 :(得分:15)

我的网站遇到了同样的问题,结果发现问题出在网站网址上: 自动生成的远程网址为:https://user@site.scm.azurewebsites.net/site.git

另一方面,门户网站显示:https://user@site.scm.azurewebsites.net:443/site.git

使用以下命令更新git中的远程URL:

git remote set-url azure
https://<user>@<site>.scm.azurewebsites.net/<site>.git
https://<user>@<site>.scm.azurewebsites.net:443/<site>.git
事情开始按预期发挥作用。

故事的士气:检查部署网址和密码。

答案 1 :(得分:10)

接受的答案对我不起作用,但这有效。

  1. 使用

    检查您设置的Azure网址
    git config --get remote.<azure-remote-name>.url
    
  2. 使用以下命令

    重置azure url
    git remote set-url <azure-remote-name>
    https://<user>@<sitename>[_<slotName>].scm.azurewebsites.net:443/<site>.git
    
  3. 尝试使用

    推送您的代码
    git push <azure-remote-name>
    
  4. 它将打开Windows身份验证屏幕,表示输入凭据以连接到https://<user>@<sitename>[_<slotName>].scm.azurewebsites.net/<site>.git

  5. 取消此窗口。它将提示基本凭证窗口,该窗口表示输入凭证以连接到https://<user>@<sitename>[_<slotName>].scm.azurewebsites.net:433/<site>.git

  6. 输入您的凭证即可。

答案 2 :(得分:6)

尝试git clone https://<username>@praat.scm.azurewebsites.net:443/<repo-name>.git时遇到了同样的问题。我通过删除端口来解决问题。

所以你的新网址不应该有 443 端口。

答案 3 :(得分:3)

由于azure不支持ssh,您必须至少使用一次密码(在某些情况下,下次不会提示输入密码)

这篇文章描述了如何设置

https://azure.microsoft.com/en-us/documentation/articles/web-sites-publish-source-control/

以下是如何使用Azure设置git: http://weblogs.asp.net/shijuvarghese/building-and-deploying-windows-azure-web-sites-using-git-and-github-for-windows

以下是您执行的步骤

  

如果这是您第一次在Azure中设置存储库,则需要为其创建登录凭据

     

您将使用它们登录Azure存储库并从本地Git存储库推送更改。在您的网络应用程序的刀片上,单击Settings > Deployment credentials,然后配置您的部署用户名和密码。

     

完成后,点击“确定”。

现在这样做:

enter image description here

答案 4 :(得分:2)

以上解决方案均不适合我。

  

在我的部署中观察到相同错误的原因是   因为我的密码包含字符“ @”。

这使我的Azure Web应用程序的Git克隆URL格式错误。当我通过删除@更改密码时,它解决了此问题。

答案 5 :(得分:2)

是的,这里的许多答案都指向正确的路径,但是我的情况是:-我被赋予了访问Azure云上的git repos的URL,我可以很好地在浏览器上访问/浏览代码(< em> Vs ),当我尝试克隆时,我遇到了同样的问题。

因此,当您单击下图所示的克隆时,您必须生成Git凭据,这很奇怪,不确定为什么,可能他们已经设置了我的帐户来访问Azure云,不能用来克隆git repos(意味着不能用作git凭证),这与我在AWS / gitlab / bitbucket上看到的有所不同,可能是帐户设置方面的问题,或者这很常见关于Azure的回购协议,如果您遇到同样的问题,请尝试一下。 enter image description here

另一个,正如每个人都已经提到的那样,请不要尝试连接到那里生成的url(看起来像这样):

https://project-account@dev.azure.com/project-name/apps/_git/library/

相反,请尝试通过您的GIT用户名进行连接,然后使用密码:

https://username@dev.azure.com/project-name/apps/_git/library/

作为提示,如果您的用户名中包含特殊字符,Git cmd / bash将遇到错误,因此请用有效字符替换这些字符,例如。 :-

  1. @可以替换为%40
  2. +可以替换为%2B

类似于https://username%40xyz.com@dev.azure.com/project-name/apps/_git/library/

答案 6 :(得分:1)

假设您每次都输入正确的密码,可能是延迟/传播问题。

您还可以使用this wiki page上详述的网站级凭据。您可以通过&#34;获取发布配置文件&#34;在门户网站中下载您的发布凭据来获取这些内容。主WebApp栏上的选项。然后可以在class Physics implements Runnable{ private Ball ball; private Pane game; private Thread t; private boolean paused; Physics(Pane game, Ball ball){ super(); this.ball=ball; this.game=game; this.paused=true; t=new Thread(this); } public void run(){ this.unPause(); while(ball.getXSpeed()!=0||ball.getYSpeed()!=0){ try { sleep(20); } catch (InterruptedException ex){ ball.stop(); } if(!paused) { ball.step(); interactGravities(); checkObstacles(); checkTargets(); checkEdges(); } } Main.showResult(); } } 文件中找到用户名/密码,它看起来像yourapp.PublishSettings。如果您的用户级凭据不起作用(如果它们正确则应该是这样),则仅作为解决方法提及。

答案 7 :(得分:1)

我不得不这样做

  1. 生成 Git 凭据
  2. git remote add origin https://username:password@dev.azure.com/xxx/_git/xxx
  3. git add.
  4. git commit -m init
  5. push -u origin --all

答案 8 :(得分:1)

Current Azure Structure for adding credential

使用突出显示的用户、密码、确认密码部分来创建用户凭据。用它来继续你被卡住的地方。

答案 9 :(得分:1)

我有一个类似的问题,其中自动生成的git clone网址是:

https://group-admin-account-username@dev.azure.com/site.git

所以我不得不用我自己的帐户用户名替换

https://my-username@dev.azure.com/site.git 

然后这提示我正确输入我的帐户密码:

git clone https://my-username@dev.azure.com/site.git 

答案 10 :(得分:0)

如果您使用的是 Sourcetree 并且您尝试了此处的所有答案,但没有任何效果。

尝试使用此 url 结构作为源再次克隆您的项目:

https://<username>:<password>@dev.azure.com/project-name/apps/_git/library/

用户名和密码来自克隆分支时的生成 Git 凭据按钮。

答案 11 :(得分:0)

使用 Mac 我遇到了同样的问题。使用 Git 凭证管理器有效。

当您在设置中看到 PAT(个人访问令牌)时不要感到惊讶。

“一旦通过身份验证,凭据管理器会创建并缓存个人访问令牌,以便将来连接到存储库。在令牌过期之前,连接到此帐户的 Git 命令不会提示输入用户凭据。令牌可以通过 Azure 撤销回购。”

下面的链接应该有帮助

https://docs.microsoft.com/en-us/azure/devops/repos/git/set-up-credential-managers?view=azure-devops

答案 12 :(得分:0)

上面的一些让我很接近,例如@Nilay Vishwakarma 的帖子,但我最终发现身份验证问题的原因是我的密码包含一个“$”,后跟一个“..u7”,我最终当我输入时,在 powershell 中注意到它突出显示为黄色。

因此我认为可能是 CLi 在密码中使用这个字符有问题(即使它没有在 this tutorial 中作为保留字符被提及)。

我重新运行了“az webapp deployment user set --user-name [user] --password [pwd]”命令,修改后的密码没有“$”,然后能够输入我的凭据并进行身份验证。

答案 13 :(得分:0)

在添加我的SSH密钥后,使用SSH而不是HTTPS对我有用

答案 14 :(得分:0)

导航到部署中心 >> 部署凭据,将有本地git的应用程序凭据。使用用户名和密码即可。

答案 15 :(得分:0)

就我而言,以上方法均不能解决我的问题(但它们指示我找出问题所在)

我尝试了自动生成的应用程序凭据和自定义创建的用户凭据,并且每次收到身份验证失败消息时都如此。

凭据页面上的描述建议我使用以下格式的用户名:
<app-name>\<username>

这就是验证失败的原因。一旦我将用户名放在没有<app-name>前缀的情况下,身份验证即告通过,一切正常。

希望此信息有帮助

答案 16 :(得分:0)

如果您使用的是Azure DevOps,则可以

  1. 点击“回购”;
  2. 点击“克隆”;
  3. 点击“生成Git凭据”;
  4. 输入别名(可选);
  5. 输入另一个要使用的密码;
  6. 点击“保存Git凭据”;
  7. 当您进行推送时,输入新的密码和名称(或别名);

答案 17 :(得分:0)

这可能会有所帮助:在我的第一个Web应用程序中,我不得不转到Deployment Center,Deployment Credentials。然后使用“应用程序凭据”或创建“用户凭据”。此后,删除本地计算机上的缓存凭据(窗口:控制面板\用户帐户\凭据管理器)。再次运行“ git push webapp master:master”,输入任意一个部署凭据。可行。

答案 18 :(得分:0)

对我有用的是我创建了个人访问令牌。 单击右上角的用户名>安全性>从左窗格中选择个人访问令牌>新令牌。 提供令牌名称和令牌范围,然后单击创建。 保存该令牌并将其用作密码。

答案 19 :(得分:0)

转到“安全”选项卡>>个人访问令牌>>新令牌>>授予它完全访问权限 >>注意访问令牌,因为它将用作密码

答案 20 :(得分:0)

在我的系统中,我从cli设置部署用户时从未创建过密码。我必须转到该应用程序的Web应用程序,应用程序服务,然后设置部署凭据

答案 21 :(得分:0)

对我来说,这是用远程网址克隆项目并取消Windows安全提示的问题。然后,它会问你密码。 一旦你能够克隆它,你就可以成功推送它。

故事的道德:在推动之前首先克隆它。

答案 22 :(得分:0)

在我的情况下,看起来天蓝色的服务器正在放慢速度。

Git部署

git push azure master

致命:

的身份验证失败

FTP部署

验证 - 确定上传速度1-10K

答案 23 :(得分:0)

一个直接的解决方法是从主工具栏下载/获取发布配置文件(确保刷新门户页面)并使用.publishsettings文件中给出的密码。