remote: Support for password authentication was removed on August 13, 2021.
問題描述
昨天偶然想往Github上提交一個新項目,在常規的輸入Username和Password之后,Github返回了這樣一個錯誤:
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。
背景
官方解釋:https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/
近年來,GitHub 客戶受益於 GitHub.com 的多項安全增強功能,例如雙重身份驗證、登錄警報、驗證設備、防止使用泄露密碼和WebAuthn 支持。這些功能使攻擊者更難獲取在多個網站上重復使用的密碼並使用它來嘗試訪問您的 GitHub 帳戶。盡管有這些改進,但由於歷史原因,未啟用雙因素身份驗證的客戶仍然能夠僅使用其 GitHub 用戶名和密碼繼續對 Git 和 API 操作進行身份驗證。
從 2021 年 8 月 13 日開始,我們在對 Git 操作進行身份驗證時將不再接受帳戶密碼,並將要求使用基於令牌的身份驗證,例如個人訪問令牌(針對開發人員)或 OAuth 或 GitHub 應用程序安裝令牌(針對集成商)適用於 GitHub.com 上所有經過身份驗證的 Git 操作。您也可以在您喜歡的地方繼續使用 SSH 密鑰。
與基於密碼的身份驗證相比,令牌提供了許多安全優勢:
- 唯一 —— 令牌特定於 GitHub,可以按使用或按設備生成
- 可撤銷 —— 令牌可以隨時單獨撤銷,無需更新未受影響的憑據
- 有限 —— 令牌的范圍可以很窄,只允許用例所需的訪問權限
- 隨機 —— 令牌不受字典類型或暴力嘗試的影響,您需要記住或定期輸入的更簡單的密碼可能是
問題解決
找到個人Settings頁面:
找到Developer settings(我截圖的時候這個選項在最下面)
選擇個人訪問令牌Personal access tokens,然后選中生成令牌Generate new token
設置token的特性,比如:標題,有效期,token權限等等
生成令牌Generate token
把token復制下來
之后提交代碼的時候,在之前輸入密碼的地方輸入這個token就可以了。
也可以 把token直接添加遠程倉庫鏈接中,這樣就可以避免同一個倉庫每次提交代碼都要輸入token了:
git remote set-url origin https://<your_token>@github.com/<USERNAME>/<REPO>.git
- <your_token>:換成你自己得到的token
- <USERNAME>:是你自己github的用戶名
- <REPO>:是你的倉庫名稱
還有點新鮮事兒
這事兒說新鮮也不新鮮了,就是新創建的repo里面,默認分支已經從master改名成main了。
因為在2020年6月份,受美國大規模的 “Black Lives Matter”運動影響,為了安撫愈演愈烈的民眾情緒,GitHub 就宣布將替換掉 master 等術語,以避免聯想奴隸制。
而對於為何選擇“main”而不是其他替換詞匯,Github 方面給出的解釋為,main 是他們在平台上看到的最受歡迎的 master 替代品。並且 main 這個詞匯很短,可以幫助用戶形成良好的肌肉記憶;在很多種語言中翻譯起來也都很容易。