记录一次Bitbucket鉴权的坑

时间:2022-09-26 19:03:57

今天首次在Fedora上使用git,因为没有小王八(TortoiseGit)帮助,其过程异常焦灼……

反正经过一系列折腾,我在本地新建了一个项目并将其加入git控制……

$ git init
$ git config user.name <myusername>
$ git config user.email <myemail@myemail.com>

然后我想把这个库放到远端bitbucket上,于是在bitbucket上新建了一个repo,然后进行添加……

$ git remote add origin https://xxx@xxx/xxx/xxx.git
$ git commit -m "Init repo"
$ git push origin master

因为是头一次在Fedora上部署Git,所以按照惯例,这个时候弹出密码输入,我像往常那样把Bitbucket的账户密码输了进去……

****...****

然后就出事了……

fatal: Authentication failed for 'https://xxx@xxx/xxx/xxx.git'

什么原因

我还在纳闷我是不是密码敲错了,于是我就从浏览器那边把bitbucket注销重新登录,确认了密码没有问题之后又试了一次,然而涛声依旧……

于是我开始怀疑是不是没加入RSA公钥导致的,但是按照说明生成了密钥并添加到Bitbucket中继续登录……

$ ssh-keygen

结果还是不行……

然后我往前翻,才发现问题所在……

[2022-09-26T09:52:34.250Z] > git push origin master [6214ms]
[2022-09-26T09:52:34.250Z] 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://xxx@xxx/xxx/xxx.git'

从上面提到的这个链接指向了一篇Bitbucket的声明,大概意思是:

你个老登你奥特啦,我们从2022年3月开始就不再使用账户密码登录的方式进行Git的一般控制啦,取而代之地,对每个Application我们单独给密码啦(App密码)!

总之,就是他们认为这个玩意更安全,于是弃用了以前的登录方式……

如何解决

于是继续按照他给的第二个链接进入Bitbucket仓库后台添加App密码……

记录一次Bitbucket鉴权的坑

填写上述信息勾选合适的访问权限后,点击“创建”稍等片刻就会生成下面这一坨密码……

记录一次Bitbucket鉴权的坑

这一坨务必要妥善保存,因为一旦点了关闭之后你就再也没有机会看到这个密码了……除非你去Bitbucket后台重新申请,当然,在后台你也可以选择作废已经产生的密码。

当然,不必担心我的截图没有打码,因为当您看到这串密码的时候,它已经作废了

然后在push的时候再次提示密码输入,这个时候再把上面这一坨填进去(或者粘进去),终于……

To https://xxx@xxx/xxx/xxx.git
 * [new branch]      master -> master

如果不希望每次push的时候重新输入密码,那么就……

$ git config user.password ATBBdGdbGQSq2UkDu2TATgUq7GcK604EA610

当然,保险起见,我还是把这一坨东西保存到别的位置去了Orz……

总结

……
Bitbucket你个老登!