今天首次在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后台重新申请,当然,在后台你也可以选择作废已经产生的密码。
当然,不必担心我的截图没有打码,因为当您看到这串密码的时候,它已经作废了。
然后在push的时候再次提示密码输入,这个时候再把上面这一坨填进去(或者粘进去),终于……
To https://xxx@xxx/xxx/xxx.git
* [new branch] master -> master
如果不希望每次push的时候重新输入密码,那么就……
$ git config user.password ATBBdGdbGQSq2UkDu2TATgUq7GcK604EA610
当然,保险起见,我还是把这一坨东西保存到别的位置去了Orz……
总结
……
Bitbucket你个老登!