Git for Windows with GCM Core不保存Bitbucket应用密码

balp4ylt  于 2022-11-20  发布在  Git
关注(0)|答案(3)|浏览(116)

我在一台新机器上安装了Git for Windows 2.37.1.windows.1,同时也安装了Git Credential Manager Core 2.0.785+ 6074 e4 e3 d3。我创建了一个Bitbucket app password。然后我尝试使用git pull访问我的Bitbucket帐户上的一个私有仓库。
Git弹出Bitbucket的认证对话框,有两个选项:使用浏览器进行身份验证,或者使用密码进行身份验证。我首先尝试了密码选项。我使用了我的Bitbucket用户名和我新创建的应用密码。我能够访问存储库。
但是当我尝试完全相同的命令时,它又弹出了身份验证对话框。我一遍又一遍地做这些步骤。每次它都允许我访问存储库,但看起来凭据并没有被保存。
我在Windows中打开凭据管理器,看到git:https://bitbucket.org的凭据。
我再次尝试访问存储库,但这次我选择了浏览器认证选项。它把我送到某个网页,由于我已经登录了Bitbucket网站,它说我已经通过认证。我可以访问存储库。现在我每次都可以访问存储库,而不需要认证对话框。
请注意,如果我创建一个GitHub personal access token并在验证对话框中输入它,Git似乎会保存它,所以我不需要每次都输入它。
为什么Bitbucket不存储我的证书?为什么它要求我通过浏览器进行身份验证?如果我被迫通过浏览器进行身份验证,那么拥有应用密码又有什么意义?这种特定情况在哪里记录?

  • 更新 * 通过浏览器验证后(Windows版Git中“连接到Bitbucket”验证对话框中的两个选项之一),我可以继续使用Git,而无需在Windows 10命令提示符下进行进一步验证。啊,但后来我切换到PowerShell,整件事又发生了:我每次尝试Eidogg. X1 M2 N1 X时都会得到身份验证对话框。每次我都成功地使用“密码”选项,使用我的应用程序密码,但它从未保存密码,每次都要求我重新输入密码。

所以我再次选择了对话框中的“Browser”选项;它把我带到了一个Bitbucket网页,上面写着(因为我已经登录了):
验证成功Git凭据管理器已成功通过验证。您现在可以关闭此页。
现在我可以从PowerShell中尽可能多地使用X1 M3 N1 X,现在我使用“浏览器”进行了身份验证。
所以问题依然存在:为什么Bitbucket的Git for Windows认证对话框使用保存的应用密码,而不是要求我每次都重新输入密码?(注意,我已经更新到Git for Windows 2.37.2.windows.2。

lp0sw83n

lp0sw83n1#

使用帐户密码git通过https和帐户密码存储钥匙串访问和使用,而不是应用程序
首先运行以下命令:

git config --system credential.helper

git config --global credential.helper

然后使一个push从这终端.你应该得到要求一个密码如果没有是stord钥匙链访问,请提供这应用程序密码
这个答案已经被几个人尝试过了,请看这个链接:https://community.atlassian.com/t5/Bitbucket-questions/Always-seenig-a-mesage-Using-an-account-password-for-Git-over/qaq-p/1919111

xwbd5t1u

xwbd5t1u2#

由于在两台服务器上的情况完全相同,我使用以下命令解决了该问题

git config --global credential.bitbucketAuthModes "basic"

从这个link
我不再需要重新输入密码,现在使用的是Windows凭据管理器中的密码。
然而,这只解决了一个服务器上的行为。所以肯定还没有正确的解决方案,但只是部分解决方案。
我无法在第二台服务器上复制它。
编辑:我假设两个服务器使用相同的配置,但git版本不同:

*工作服务器:Git版本2.35.1.窗口.2
*非工作服务器:获取版本2.38.1.窗口.1

  • 注意:我在两台服务器上都使用代理,我想知道它是否不是问题的根源。*
i2byvkas

i2byvkas3#

首先 , 确保 6 天 前 ( 2022 年 8 月 12 日 ) 发布 的 Git for Windows 2.37.2(2) 仍然 存在 该 问题
其次 , 请 务必 注册 * * App password * * 作为 您 的 密码 。
(An应用 程序 密码 是 基于 用户 的 访问 令牌 , 用于 脚本 任务 和 将 工具 ( 如 CI/CD 工具 ) 与 Bitbucket Cloud 集成 ) 。
如 " Announcement: Bitbucket Cloud account password usage for Git over HTTPS and API ending March 1, 2022 " 所 示 :
如果 您 已 保存 凭据( 即 用户 名 和 帐户 密码 ) , 如 * * Git 凭据 管理 器 * *( * * GCM * * ) 、 Windows 凭据 管理 器 、 OS X 钥匙 串 或 其他 一些 第 三方 应用 程序 , 则 您 需要 在 2022 年 3 月 1 日 之前 使用 应用 程序 密码 更新 它们 ,为了 继续 使用 Bitbucket API 和/或 Git 通过 HTTPS 的 基本 身份 验证 而 不 中断
以下 是 如何 在 Windows 上 使用 应用 程序 密码 更新 GCM :
在 CMD 中 , 设置 简化 的 PATH , 如下 所 示 :

set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\
set "GH=%LOCALAPPDATA%\Programs\Git"
set "PATH=%GH%\bin;%GH%\cmd;%GH%\usr\bin;%GH%\mingw64\bin;%GH%\mingw64\libexec\git-core;%PATH%"

中 的 每 一 个
然后 键入 相同 的 CMD :

printf "Host=bitbucket.org\nprotocol=https" | git credential-manager-core get
# or 
printf "Host=bitbucket.org\nprotocol=https\nusername=YourBitBucketAccount" | git credential-manager-core get

格式
如果 您 没有 看到 令牌 ( BitBucket Cloud 的 应用 密码 ) , 请 手动 注册 :

printf "Host=bitbucket.org\nprotocol=https\nusername=YourBitBucketAccount\npassword=YourAppPassword" | git credential-manager-core store

格式
然后 重试 , 即使 没有 克隆 , 使用 git ls-remote https://bitbucket.org/you/YourPrivateRepo
如果 它 列出 了 分支 , 则 身份 验证 成功 。

相关问题