今天提交代碼時,sourceTree 報了一個錯:
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
大概意思就是我原先的密碼憑證從2021年8月13日開始就不能用了宁炫,必須使用個人訪問令牌(personal access token)服球,就是把你的密碼替換成token叼架!
那么缩赛,問題來了秽五, github為什么要把密碼換成 personal access token堡纬?
1聂受、修改為token的動機
我們描述了我們的動機,因為我們宣布了對 API 身份驗證的類似更改烤镐,如下所示:
近年來蛋济,GitHub 客戶受益于 GitHub.com 的許多安全增強功能,例如雙因素身份驗證炮叶、登錄警報碗旅、經過驗證的設備、防止使用泄露密碼和 WebAuthn 支持镜悉。 這些功能使攻擊者更難獲取在多個網站上重復使用的密碼并使用它來嘗試訪問您的 GitHub 帳戶祟辟。 盡管有這些改進,但由于歷史原因侣肄,未啟用雙因素身份驗證的客戶仍能夠僅使用其GitHub 用戶名和密碼繼續(xù)對 Git 和 API 操作進行身份驗證旧困。
從 2021 年 8 月 13 日開始,我們將在對 Git 操作進行身份驗證時不再接受帳戶密碼稼锅,并將要求使用基于令牌(token)的身份驗證叮喳,例如個人訪問令牌(針對開發(fā)人員)或 OAuth 或 GitHub 應用程序安裝令牌(針對集成商) GitHub.com 上所有經過身份驗證的 Git 操作。 您也可以繼續(xù)在您喜歡的地方使用 SSH 密鑰(如果你要使用ssh密鑰可以參考)缰贝。
2馍悟、修改為token的好處
令牌(token)與基于密碼的身份驗證相比,令牌提供了許多安全優(yōu)勢:
唯一: 令牌特定于 GitHub剩晴,可以按使用或按設備生成
可撤銷:可以隨時單獨撤銷令牌锣咒,而無需更新未受影響的憑據(jù)
有限 : 令牌可以縮小范圍以僅允許用例所需的訪問
隨機:令牌不需要記住或定期輸入的更簡單密碼可能會受到的字典類型或蠻力嘗試的影響
解決方案:
生成自己的token
1侵状、在個人設置頁面
,找到Setting
2毅整、在左側列表中趣兄,選擇開發(fā)者設置Developer setting
3、選擇個人訪問令牌Personal access tokens悼嫉,然后選中生成令牌Generate new token
4艇潭、設置token的有效期,訪問權限等
選擇要授予此令牌token的范圍或權限戏蔑。
要使用token從命令行訪問倉庫蹋凝,請選擇repo。
要使用token從命令行刪除倉庫总棵,請選擇delete_repo
其他根據(jù)需要進行勾選
5鳍寂、生成令牌Generate token
token生成成功!
注意:
記得把你的token保存下來情龄,因為你再次刷新網頁的時候迄汛,你已經沒有辦法看到它了,所以我還沒有徹底搞清楚這個token的使用骤视,后續(xù)還會繼續(xù)探索鞍爱!
6、之后用自己生成的token登錄专酗,把上面生成的token粘貼到輸入密碼的位置睹逃,然后成功push代碼!
也可以 把token直接添加遠程倉庫鏈接中笼裳,這樣就可以避免同一個倉庫每次提交代碼都要輸入token了:
(1) 在sourceTree中操作唯卖,點擊右上角設置
(2) 編輯遠程倉庫鏈接
git remote set-url origin https://<your_token>@github.com/<USERNAME>/<REPO>.git
<your_token>:換成你自己得到的token
<USERNAME>:是你自己github的用戶名
<REPO>:是你的倉庫名稱
例如:
git remote set-url origin https://ghp_xxxxxxxxxxxxxxxxxx@github.com/ZhangSan/TestProj.git/