Mac 上改變 Git 認證模式

其實 Git 取消使用密碼登入的通知已經發了一年多了,只是我一直選擇性忽略掉它。直到 2021/08/13 它失效那一天,我無法再部署那一天,我才不甘願地去處理這件事。其實不是一件很困難的事情,但還是簡單紀錄下,因為還是花點時間看了一下怎麼調整。


警告訊息長這樣

在使用 Hexo 部署 Git 時候,總是會跳這個警告

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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/myctw/myctw.github.io/': The requested URL returned error: 403
FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
Error: 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/myctw/myctw.github.io/': The requested URL returned error: 403

at ChildProcess.<anonymous> (/Users/mingyi/Documents/blog/node_modules/hexo-util/lib/spawn.js:37:17)
at ChildProcess.emit (events.js:182:13)
at maybeClose (internal/child_process.js:962:16)
at Socket.stream.socket.on (internal/child_process.js:381:11)
at Socket.emit (events.js:182:13)
at Pipe._handle.close (net.js:606:12)

其實第一句就告訴你了,使用密碼驗證的方式要移除了,建議使用 personal access token


Step1 建立 personal access token

  1. Git 右上角個人 Icon 點下去,找到 settings
    alt
  2. 左邊一排設定中找到 Developer settings
    alt
  3. 左邊一排設定中找到 Personal access tokens
  4. 點選 Generate new token
    alt
  5. Note 欄位就是名稱,基本上有個意義、看得出來是幹嘛的就好
  6. Expiration 強烈建議不要改為永久,因為這就不是 token 了,我是設定一個月啦~怕自己忘記這個操作,乾脆頻繁來使用。
  7. 權限部分就看各位的需求自己設定了,我的目的是只有使用 blog,那麼權限就不應該這麼大
    alt
  8. 接著點選 Generate Token 就可以囉!要記得 token 只會顯示一次,也就是現在,之後只能重新產生了喔!所以一定要先複製好。

Step2 修改 MacOS keychain

  1. 打開 MacOS 的鑰匙圈
  2. 於右上方搜尋 git
    alt
  3. 找到 GitHub 網站後點擊兩下展開內容
  4. 先打開密碼檢視,接著貼上你產生出來的 token 即可
    alt

大功告成!


2022/02/19 Update

有朋友說這個方法沒效果,另一種解法是修改 hexo 的 _config.yml 檔案

在外層的 _config.yml 檔案中,找到 git 的 repo 設定:

1
2
3
4
deploy:
type: git
repo: https://[email protected]/ooooooo
branch: master

xxx 填入你新增的 Personal Access Token 就能解決囉

  • 作者: MingYi Chou
  • 版權聲明: 轉載不用問,但請註明出處!本網誌均採用 BY-NC-SA 許可協議。