之前在Linux環境底下,已經習慣使用 GitHub 透過輸入帳號密碼來更新(pull)或修改(push)系統了,結果今天突然發現,在更新(pull)時,出現了以下這樣的錯誤訊息

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. fatal: unable to access ‘https://github.com/[account]/[repo].git/’: The requested URL returned error: 403

呃,這麼說來,好像也不是這麼「突然」這樣。幾個月以來,GitHub好像都有寄信到我的Gmail,警告我,「我們2021/8/13之後,就沒有要支援用帳號密碼的方式登入囉…」

無奈之下,在能力不足的狀況下,研究了一個下午,先來整理一下解決方案吧。

解法

先用自己的帳號登入 github.com ,並在右上角的小人頭選單裡點擊「Settings / 左側選單倒數幾個的 Developer settings / Personal Access Tokens」,進入到 Access Tokens 頁面後,在右上角有個「Generate new token」的按鈕,新增Token。

Note:隨便填寫

Expiration:因為一直要維護案子,所以都直接填寫「沒有期限」,如有臨時給他人使用的需求,可以將期限拉短一點

Select Scopes:repo(全選)、delete_repo、admin:repo_hook(全選)

確定送出之後,就會獲得一串 Token 值,可以的話,如果要複製這串Token,請按他旁邊的「複製」鈕,不要直接用滑鼠選取後再複製,因為很容易左右多一個空白(這害我之後的登入失敗很多次,且抓不到原因)

回到 SSH 下指令,當在做 clone, push, pull 時,git 仍然會請你輸入帳密,之前的帳號我都是輸入email,但現在只能輸入帳號。密碼的話,則是要輸入剛複制的Token哦。(因為密碼看不到,所以之前我複製到前後有空白的Token,我自己也不知道,這導致我一直沒辦法正確登入),輸入完畢後送出,git 就可以正常運作了。

這時候再補上一個

git config –global credential.helper cache

就可以把 Token 暫存到系統裡囉。之後使用Git也就不用再輸入帳密了。

呼~先這樣,做個記錄,之後有比較完整的理解,再來補充~

最後修改日期: 2021 年 8 月 18 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。