身份验证失败

我试图通过 bitbucket 上的 https 协议使用 source 树来推动我的项目。
但是我不能用我的登录名和密码连接到 bitbucket (在网站上可以使用) ,我有一个致命的错误: “身份验证失败”。

我在其他文章中读到,我可以使用 ssh 协议而不是 https 协议来解决这个问题,所以我按照 源树常见问题源树常见问题上的说明设置了一个 ssh 密钥。 但是现在我不知道如何在推送代码时更改 ssh 协议。 有人知道我该怎么做吗? 谢谢你。

365949 次浏览

如果 GIT 控制台出现身份验证问题,可以尝试将配置切换到 HTTPS,并使用以下命令指定用户和密码:

https://<username>:<password>@bitbucket.org/<username>/<repo>.git

但要小心:

回到我很久以前做出的这个答案,我想给@ChristopherPickslay 一些赞扬,因为他指出密码以明文形式存储在 .git/config文件中。

如果希望使用 HTTPS,可以使用 Git 凭证管理器安全地存储密码

但就我个人而言,我现在总是使用 SSH 身份验证,因为这似乎是一种更好的做法,因为您使用一对个人的公共/私有密钥,这将防止您的密码被存储在外部。除了可以在密钥上放置密码以外,还需要将密码存储在凭据管理器或 ssh-agent 上。

我最近在 SourceTree 上遇到了类似的问题: 任何时候我尝试从远程原点推/拉/取,都会得到一个身份验证错误(使用 SourceTree 和 Stash)。有时我会在隐藏的挑战与验证码,但它从来没有作出任何区别,如果我提供了正确的信息与否。

对我来说,我们在公司环境中使用 SourceTree 和 Stash; 用户帐户基于网络凭证。我们的部分网络安全要求我们定期更改这些密码。

我是在假设 SourceTree/Stash“知道”我的网络密码发生了任何更改的情况下操作的。但显然,至少在这个案例中,并非如此。

要解决这个问题,我需要做的就是:

工具 > 选项 > 认证 > 编辑(编辑密码)

我将密码设置为与我当前的网络密码相匹配,一切开始按预期工作。

不知道这是否有助于 OP,但我希望它可以帮助其他人寻找类似问题的答案。

在更改了存储库密码之后,这个问题得到了解决,没有使用任何特殊字符(!”$% & &)。

显然,win-credential-store 和 git 以及 bitbucket 的 Web 界面使用了不同的字符编码。

完整程序:

D:\shared\Project> cd /path/to/your/project
D:\shared\Project> git init
D:\shared\Project> git remote add origin https://bitbucket.org/USERNAME/project.git
D:\shared\Project> git-credential-winstore.exe

那么

D:\shared\Project> git push
Failed to erase credential: Element not found
fatal: Authentication failed for 'https://bitbucket.org/USERNAME/project.git/'

更改密码后:

D:\shared\Project> git push
Counting objects: 102, done.
Delta compression using up to 8 threads.
... etc. ...

Windows 资源库中的设置:

address: git:bitbucket.org (remeber the preceding "git:")
user: USERNAME
pass: old incl!"§§$%&, new without!"§$%%&/( (your passphrase!)

如果你使用 google/other oauth 创建了一个账户,那么你需要先为你的账户设置一个 bitbucket 密码。网址是: Https://Bitbucket.org/account/user/ /或在菜单下查找 Bitbucket 设置。

然后可以从 git 登录(我尝试通过命令行):

Helper = manager

现在,当我在 bitbucket 网站上设置了密码(电子邮件也已验证) ,并再次尝试推送后,它提示我输入密码,然后推送代码。

Bitbucket 网页上的菜单位置图-> http://ctrlv.in/747291(截至2016年5月)。

我通过编辑 OS X 钥匙链中的存储值解决了这个问题: 我查找 "bitbucket"(作为 申请密码)并更改了值。

然后在 源头树上,当我试图推时,我必须直接重新输入我的新密码。

我也有同样的问题。你需要在你的 bitbucket 设置中为源代码树添加一个应用程序密码。在菜单中点击“ Bitbucket 设置”,应用程序密码,创建应用程序密码。然后转到 SourceTree 并编辑您保存的密码

以上这些对我来说都不管用——问题在于我的源树偏好。在 Network 选项卡中,我在那里设置了“不包含 URL 的默认用户名:”。用户名在我之前输入错误的地方是不正确的——我把它设置成了我的电子邮件而不是用户名。我突出显示了这些条目,并单击了这两个条目的“移除”。然后,我返回到存储库页面,再次单击 Push。在推送时,它要求我输入完整的用户名和密码,我能够正确输入——然后推送终于起作用了。

过时的答案——2020年11月17日


在 Mac 上,我需要转到 Preferences > Accounts,然后添加一个新的帐户作为 Bitbucket Server,并输入我公司的 bitbucket 服务器 URL。然后我必须选择 HTTPS作为协议,并输入我的用户名(没有@email)和密码。

另外,我通过单击 Preferences > Account页面底部的 Set Default...按钮将这个新帐户设置为默认帐户。

在公司内部,虽然它应该在任何地方工作。

  • 从 Bitbucket 注销(以防您正在使用)
  • 用你的证件登录
  • 回到控制台
  • 发射同样的命令
  • 它会询问密码-提供它。
  • 你可以走了。

我恢复到了源代码树2.0

这解决了我的问题。

Https://www.sourcetreeapp.com/download-archives

我也有同样的问题。这与 Git for Windows 中的 bug 有关。对我来说,将 SourceTree 中使用的 Git 更改为嵌入式 Git 就足够了:

工具-> 选项-> Git 并单击按钮“使用嵌入式 Git”

Tools-> options-> git 和选择“ use system git”对我来说就是魔术。

Tools > Options > Use System Git,然后选择 git.exe文件

enter image description here

将再次需要凭据,这个问题将得到解决。

我尝试了所有其他的方法,发现无能为力,但这确实对我起作用“更新您的凭证,去 控制面板-> 证书管理器-> 通用证书。找到与您的 git 帐户相关的凭证,并编辑它们以使用更新后的密码”。

上面的解决方案可以在这个链接中找到: Https://cmatskas.com/how-to-update-your-git-credentials-on-windows/

对我来说,问题是我没有在 Sourcetree 中添加帐户。

添加一个帐户可以让我推送我的回购:

工具 > 选项 > 认证 > 添加 > 刷新 OAuth 令牌

enter image description here

经过长时间的努力,我似乎找到了一些有用的东西。我正在优化网址,以便不包含用户名(尽可能保持通用性) ,但身份验证对话框不断弹出:

enter image description here

我尝试了所有我想到的方法,比如:

  1. 启用和禁用 MFA (多因素身份验证)
  2. 创建应用程序密码(同样,启用和不启用 MFA)

无论我使用什么工具(包括 SourceTree) ,都不起作用

基本上你必须这么做

  1. 使用 URL 包括作为用户名(例如 https://myusername@bitbucket.org/..)
  2. 使用在 bitbucket 中创建的应用程序密码

如果服务器在响应中返回这个密码,而不是建议使用应用程序密码,那就太好了..。

对于 麦克 用户。在 Source 树上设置了一个默认帐户,它不允许我克隆 URL,因为我当前的 URL 是不同的 bitbucket 帐户。因此,它显示了 无效的源路径,然后我单击 先期方案,发现 Authentication 对于 your _ clone _ url 失败。所以,按照下面的步骤

  1. 选择源树。转到 SourceTree 菜单-> 选择 偏好
  2. 它将显示 帐户窗口。然后选择 帐户 enter image description here

这里它将显示您添加的帐户列表。只需点击底部的 按钮,并添加您的新位桶帐户详细信息。它将在“帐户”选项卡下列出您的帐户。您还可以从底部单击 设置默认值。按钮设置默认帐户。现在一切都结束了。

出现这个问题是因为您的 git 帐户和您的 PC 的 密码可能不同。因此,包括你的 用户名,如下面的例子所示:

https://myusername@bitbucket.org/...

https: //devi@bitbucket.org/...

我几乎尝试了这里给出的所有解决方案。

对我来说有效的是我打开 GIT 图形用户界面,并在其中尝试推。请求凭据,输入正确的用户标识和密码,它将重新开始工作。

我用的是以下命令

git clone -b branch-name https://<username>@bitbucket.org/<repository>.git

问题解决后,添加用户名密码(见下面的命令) :

git clone -b branch-name https://<username>:<password>@bitbucket.org/<repository>.git

在橱窗里,这招对我很管用

Git config —— global http.sslVerify false

Windows 启动菜单,搜索 Windows 凭据管理器。搜索 bitbucket 网址,尝试更新密码。.再做一次 Git 手术。应该可以。

我得到了同样的问题时,密码重置已发生的域。 我尝试了几乎所有的步骤
(工具 > 选项 > 认证)。 最后我从 atlassian 社区页面得到了下面的答案,它起作用了。

唯一对我有用的是导航到 C: Users USERNAME AppData Local Atlassian SourceTree 并删除 passwd 文件

一旦这个文件被删除,我只是做了一个“推”,它最终要求我的密码

Https://community.atlassian.com/t5/sourcetree-questions/how-to-update-http-s-credentials-in-sourcetree/qaq-p/297564

Https://community.atlassian.com/t5/sourcetree-questions/getting-quot-fatal-authentication-failed-for-quot-error/qaq-p/624663

我使用 Azure DevOps 得到了这个错误,尽管我已经添加了一个个人访问令牌作为示例。

enter image description here

通过从 Sourcetree 终端运行 git pull -v并通过该终端再次添加个人访问令牌,解决了这个问题。

enter image description here

我试着拨打了 git push --all bitbucket的电话,却发现“致命的: 验证失败, https://..." 响应”。对我有效的解决方案是将命令更改为:

git push --all https://{username}@{url}

在 Windows 上,这会弹出一个对话框,允许我输入密码,推送操作就成功了。

删除 Sourcetree 密码缓存文件对我来说很有用。导航到 C: Users USERNAME AppData Local Atlassian SourceTree 并删除(或重命名)名为 passwd 的文件。重新启动 SourceTree 并执行一个命令(例如“拉”、“推”等)需要身份验证。然后 SourceTree 会提示您输入密码,重写缓存的凭据。

在最新的更新中,您可以从 bitbucket 的设置页面设置应用程序密码。然后,当你将推或拉的东西类型的密码,它将工作enter image description here

自2022年3月以来,使用 SourceTree for Windows 需要 Atlassian 密码的情况发生了变化

  • 升级到 SourceTree 的最新版本。

  • 在 SourceTree 中选择 Tools-> Options-> Authentication,删除所有帐户,然后关闭 SourceTree。

  • 转到 Atlassian 网站,创建一个应用程序密码并将其保存到某个地方(https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/)。

  • 在 Windows 中,转到控制面板-> 用户帐户-> 凭据管理器-> 管理 Windows 凭据并删除所有与 BitBucket 相关的凭据。

  • 在文件资源管理器中,导航到 c: Users your _ user _ name AppData Local Atlassian SourceTree 并删除“ passwd”文件(本文和前面的步骤的目的是删除任何现有的缓存凭据。

  • 再次启动 SourceTree,打开回购的资源设置,并确保它设置为使用您的 bitbucket 用户名,而不是电子邮件地址。

  • 获取回购,当提示时,输入您在步骤3中生成的应用程序密码。

  • 向 SourceTree 添加密码: Https://support.atlassian.com/bitbucket-cloud/docs/add-an-app-password-to-sourcetree-or-another-application/


以前我在尝试通过 SourceTree 签出时修复了一个类似的问题。我通过在 BitBucket 登录模式下的“不能登录”链接更改了我的 BitBucket 密码:

enter image description here

然后在 SourceTree 中执行 Tools > Options > Authentication > Select my account > Edit > Refresh Oauth Token,直到它说 Authentication OK

enter image description here

然后,当我在 SourceTree 中尝试一个操作(在我的例子中是一个分支签出)时,我得到一个 OpenSSH 提示符并输入新密码:

enter image description here

然后通过 SourceTree 进行结帐

1. 必要时更新 git
在 bitbucket 中添加应用程序密码
Https://bitbucket.org/account/settings/app-passwords/new
3. 使用这个应用程序密码代替你的帐户密码登录

对于这个问题,您可以使用 bitbucket 的应用程序密码功能。这也适用于 github 客户端/桌面身份验证或任何其他需要连接 bitbucket 帐户的应用程序。 在 bitbucket 上点击你的头像,然后进入: 个人设置-> 应用程序密码,并选择“创建密码”。然后会出现一个对话框,询问您要授予应用程序的访问权限。标记框并点击创建,一个密码将出现在框中,复制该密码并使用它来验证您的应用程序。 enter image description here

在 IntelliJ IDEA 中,单击顶部的 Git 菜单并单击 Fetch 选项,该选项将提示输入 Git 凭证对话框,在该对话框中我们可以输入用户名和新密码来解决这个问题。放松!

若要使用 SSH 而不是 HTTPS,请执行下列操作

  1. 在本地生成 SSH 密钥,然后设置 BitBuckke 帐户以包含公共 SSH 密钥。如何做到这一点的细节在这里描述

  2. 更改存储库的 config文件。为此,编辑文件 /path/to/repo/.git/config,然后将远程 origin URL 从 HTTPS 更改为 SSH。换句话说,把它从 https://<username>@bitbucket.org/<username>/<repo>.git改成 git@bitbucket.org:<user>/<repo>.git。从 BitBucket 存储库网页中获取确切的 SSH 地址。

现在你可以毫无困难地做出承诺了。


注意

如果使用 VS 代码提交和推送代码,则可能会得到 ssh_askpass错误。解决这个问题,按照这里的步骤

上周五 Github 和 Bitbucket 的工作,我可以推拉。

今天(星期一)身份验证失败。每一次。我尝试创建新的应用程序密码,但我无法访问 GitHub 或 Bitbucket。

然后我又在另一台电脑上试了一下,它运行正常,这表明问题出在我的系统上。

我重新命名了 ~/。将 gitconfig 文件提交到其他文件,然后将 push/pull 提交到 github,bitbucket 立即重新开始工作。

我看到那台机器已经更新过了。我怀疑新的 git 版本不喜欢。Gitconfig 文件。虽然我无法证明,但是重命名那个文件为我修复了它。