怎样才能解决Bitbucket上无效凭证invalid credentials的问题?
我的Bitbucket密码是正确的,因为我可以用这个密码轻松登录。当我试图推送一个项目或文件到Bitbucket时,它显示"无效凭证错误"。
git push -u origin master
fatal: Invalid credentials
Password for 'https://username@bitbucket.org':
remote: Bitbucket Cloud recently stopped supporting account passwords for Git authentication.
remote: See our community post for more details: https://atlassian.community/t5/x/x/ba-p/1948231
remote: App passwords are recommended for most use cases and can be created in your Personal settings:
remote: https://bitbucket.org/account/settings/app-passwords/
fatal: Authentication failed for 'https://bitbucket.org/username/demo.git/'
我怎样才能解决这个问题呢?
当提示登录时,使用你的用户名,但不使用你通常的账户密码,而使用应用程序的密码。
要获得应用程序的密码
- 前往bitbucket.org网站,并登录
- 从你左下角的头像处,点击个人设置。
- 点击访问管理下的应用程序的密码。
- 点击Create app password。
- 给予应用程序密码足够的权限,以及一个与将使用密码的应用程序有关的标签。
- 不要忘记保存该密码
在2022-03-01之后。
Beginning March 1, 2022, you will no longer be able to use your Atlassian account password when using Basic authentication with the Bitbucket Cloud REST API or Git over HTTPS.
- 转到个人设置,应用密码。
- 创建应用程序的密码
- 根据你的需要勾选必要的权限。Account Read 和 Repositories Read 和 Write 是 Git 基本操作所需要的。
- 保存密码。你不能再查看!
- 使用生成的密码来登录。你可能需要使用你的Bitbucket用户名,你可以在个人设置,账户设置在"Bitbucket配置文件设置"下找到(看到一个帖子专门告诉要使用username不知道是不是真的)。
关于应用程序密码的更多信息在应用程序密码上。
在成功创建Asyraf Arifin提到的应用程序密码后。
要通过HTTPS使用Bitbucket "App Password",你可以在Terminal中导航到特定的版本库路径,然后设置远程源(对于一个已经克隆的版本库)。
git remote set-url origin https://<Bitbucket_Username>:<App_Password>@bitbucket.org/<Bitbucket_Username>/<Repo_Name>.git
对于一个新的克隆人来说。
git clone https://<Bitbucket_Username>:<App_Password>@bitbucket.org/<Bitbucket_Username>/<Repo_Name>.git
bitbucket_username
的使用令人困惑。第一个是登录用户名,第二个是仓库的BB accountname
,因此:"git remote set-url origin https://<Bitbucket_YourLoginUsername>
:<App_Password>@bitbucket.org/<Bitbucket_Your(Company)RepoAccountName>
/<Repo_Name>.git"。
- Ray Oei 2022-04-12
我的JetBrains IDE也有同样的问题,当我试图更新项目源代码或推送我的提交时,它显示了一个密码对话框。
我通过以下步骤解决了这一问题
- 在Bitbucket上打开个人设置的应用密码页面 。
- 点击Create app password,至少勾选读和写权限的存储库,进行基本的拉动和推送操作。然后给一些标签并通过Create提交。
- 生成的应用程序密码应传入IDE 。
好吧,我的答案只是汇编了Mikk-Raudsepp 和Anish的答案。他们才是真正的MVP。
转到个人设置,应用密码。
创建应用程序的密码
勾选必要的权限,以满足你的需要。
拷贝生成的密码
在终端上
在一个已经克隆的项目上,。
git remote set-url origin https://<Bitbucket_Username>:<App_Password>@bitbucket.org/<username/repoName>.git
要想克隆一个新的项目。
git clone https://<Bitbucket_Username>:<App_Password>@bitbucket.org/<username/RepoName>.git
为什么会发生这种情况?-
Beginning March 1, 2022, you will no longer be able to use your Atlassian account password when using Basic authentication with the Bitbucket Cloud REST API or Git over HTTPS.
如果任何Linux用户面临同样的问题,请按照下面的步骤进行操作。
- 转到bitbucket.org上。
- 点击Login链接 。
- 在左下角,点击你的头像图标(你的个人档案图片)。
- 然后点击个人设置,或者你可以直接打开个人设置、账户设置。
- 在访问管理部分,点击应用程序密码链接,或者你可以直接进入个人设置,应用程序密码。
- 点击Create App password的按钮。
- 根据你的要求给予访问权限。
- 请点击Create。
- 你会得到一个弹出的密码。将该密码复制到你的笔记本或电脑的某个地方(给定的密码将很难记住)。
- 现在,无论何时你在进行Git操作,如拉动或推送,如果他们要求你提供密码。你需要使用上面的密码,而不是使用你的登录密码(由应用程序密码生成的密码)。
我创建了一个应用程序密码,确保用户是用户名而不是电子邮件,在Windows的Credential Manager中更新了应用程序密码,但在版本库路径中添加应用程序密码最终解决了我的问题。
来自于。
https://用户名@bitbucket.org/...
到了。
https://用户名:app_password@bitbucket.org/...
如果使用Android Studio,编辑你的Git远程URL(通过Git/Manage Remotes),加入新生成的应用程序密码。
https://<Bitbucket_Username>:<App_Password>@bitbucket.org/<Repo_Name>.Git
对于Mac用户来说。
cd Library/Application\ Support/SourceTree
在这里删除你的用户名。
你可以再次登录。
如果在设置后仍有错误,那么就会出现错误。
将settings远程存储库路径更新为这个。
https://<Bitbucket_Username_not_email>:<App_Password_not_old_password>@bitbucket.org/<Full_Repo_Name_Path>.git
试试这个无密码登录。有了这个方法,你就再也不需要担心在你的机器上记住密码了(不要在公共电脑上使用这个技术)
尝试创建ssh密钥,并将ssh密钥添加到bitbucket中,然后尝试
我在Mac上使用Android Studio时遇到了一些问题。我通过进入Android Studio的终端选项卡并写下以下内容来解决这个问题
git push
然后它告诉我,致命的是:当前分支blabla_branch_name没有上游分支。要推送当前分支并将远程分支设置为上游分支,请使用
git push --set-upstream origin blabla_branch_name
于是我把它复制并粘贴到终端,再次点击回车。这一次,它要求我输入密码。我进入我的bitbucket在线账户,创建了一个新的应用程序密码。然后我复制了它创建的密码,并将其粘贴到终端上,然后点击回车。这似乎已经重新连接了设备和bitbucket,事情又开始了。
在我的案例中,我没有创建应用程序密码的选项,而是有创建令牌的选项。现在,一旦你创建了令牌,你必须把相同的令牌放在密码的位置上。这在Android Studio / IDEA以及命令提示符中都可以使用。希望这对其他人有帮助!
git remote set-url origin https://<Bitbucket_Username>:<App_Password>@bitbucket.org/<Repo_Name>.git
这对我来说是有效的。