0%

[GitHub] Please use a personal access token instead.

前言

在 2020 年 7 月的時候 GitHub 就開始聲明將棄用 password authentication 機制,改為採用 token-based authentication 機制。這項機制終於在 2021 年的 8 月 13 強制實施,這裡紀錄如何使用 Personal Access Token (PAT) 讓我們可以與 GitHub 連線。

產生 PAT

登入 GitHub 後點擊右上角自己的頭像,進入 Settings 中的 Developer settings

Developer settingsDeveloper settings

透過 Personal access tokens → Generate new token 到建立 PAT 的頁面,其中有三個資訊需要填寫,分別為

  • Note:可以視為 PAT 的名稱,目的性越清楚越好,避免一段時間回來看的時候不知其用途。
  • Expiration:指定 PAT 有效期限,依自己需求設定時間長度。以 Token 來說,一個月到三個月是可接受的範圍,不建議設定為永久。
  • Select scopes:指定 PAT 擁有的權限,每個權限說明可以參考 Scopes for OAuth Apps

填寫好之後點擊 Generate token 按鈕產生 PAT

建立 PAT建立 PAT

產生的 PAT 會直接顯示在頁面上,需要馬上記下來,否則離開頁面後就無法找回,只能重新產生

PATPAT

透過 Git Cli 設置 PAT

直接對 GitHub 使用 push/pull/fetch 等指令,觸發輸入帳密

1
2
3
4
5
6
$ git remote add origin https://github.com/{username}/{repository}
$ git push -u origin master
Username for 'https://github.com' : # 輸入你的 GitHub username
Password for 'https://github.com' : # 輸入剛建立好的 PAT,而不是 GitHub 的密碼
$ git config --global credential.helper cache # 讓 Git 幫忙記住帳號密碼資訊,
# 不需要每次操作都輸入一次帳密

如果直接操作沒有出現帳密輸入提示,反而出現以下訊息

1
2
3
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/{username}/{repository}': The requested URL returned error: 403

表示帳號密碼已經存在於快取之中,我們需要先使用以下指令移除已存在的帳號密碼,再重新操作一次上面的指令

1
2
$ git config --global --unset credential.helper
$ git config --system --unset credential.helper
很高興能在這裡幫助到您,歡迎登入 Liker 為我鼓掌 5 次,或者成為我的讚賞公民,鼓勵我繼續創造優質文章。
以最優質的內容回應您的鼓勵