記錄一次Bitbucket鑑權的坑

2022-09-26 21:02:48

發生了什麼

今天首次在Fedora上使用git,因為沒有小王八(TortoiseGit)幫助,其過程異常焦灼……

反正經過一系列折騰,我在本地新建了一個專案並將其加入git控制……

$ git init
$ git config user.name <myusername>
$ git config user.email <[email protected]>

然後我想把這個庫放到遠端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你個老登!