[Git]Github 新的 authentication 設定
Github 從 8/13 開始將以前的 password 認證方式刪除了,這裡記錄我解決的方法。
1. 使用 ssh
情況:
- 之前已 clone 下來的 repo
- 修改後要 push 碰到下面的錯誤訊息
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/shihs/to-do-list-app.git/': The requested URL returned error: 403
Step 1: Enabling two-factor authentication
- 根據錯誤訊息提供的網址,先去 Enabling two-factor authentication,照著 Configuring two-factor authentication recovery methods 的步驟做(裡面提到的 TOTP app 我是用 Salesforce Authenticator)。
Step 2: 加 ssh key
- 確認 github 是否已經加了 ssh key
ssh -t git@github.com
,如果沒加會出現像這樣的訊息 - 在本機 gen ssh key,並在 github 頁面新增 ssh key。我主要是參考下面兩個網址:
- 完成之後在 terminal 打上
ssh -t git@github.com
會是
Step 3: 重新 push
git remote set-url origin git@github.com:[your-github-name]/[repo-name].git
- 重新 add 和 commit 修改,就可以 push 了
但這樣的方法還是很麻煩……每一支 reop 都要重新 git remote set-url origin ...
所以另一個方法是使用 personal access token。
Reference: GitHub Support for password authentication was removed (August 13, 2021) - Solution
2. 使用 personal access token
這裡的方法是在 Mac 的操作。
Step 1:
- 參照 github 提供的方法,Creating a personal access token。
- Settings -> Developer settings -> Personal access tokens -> Generate new token
Step 2: 將 create 出來的 token 加到「鑰匙圈」裡
- 使用 spotlight 搜尋「keychain」
- 在 keychain 上搜尋「github」,找到 github
- 點選下方「顯示密碼」,並將密碼改成剛剛在 github 上 create 的 token
現在可以任意地使用之前 clone 下來的 repo 了,不過如果剛剛 create token 有時間限制,之後必須要再重新建立新的密碼並修改。
Reference: Solved - Support for password authentication was removed - Github - Mac and Windows