###### tags: `Git` `Github`
# 改用 token 登入 github
Github 規定在命令列要用 token 登入, 不能用使用帳密:
1. 要改用 token, 請參考[如何產生 token](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)。
2. 要讓 git 記住登入資訊, 可以參考 [Credential stores](https://github.com/GitCredentialManager/git-credential-manager/blob/main/docs/credstores.md)
以下會以 Windows 和 Linux 示範記錄登入資訊。
## 刪除 Windows 上記錄的 Github 帳密
Windows 上的 Github 帳號是由**認證管理員 (Credential Manager)** 記錄, 刪除的步驟如下:
1. 在**搜尋**欄中輸入『認證管理員』找到後執行:

1. 切換到**Windows 認證**頁次:

1. 往下捲就會看到 Github 相關的認證:

1. 個別點選後刪除認證即可。
## 改用 token 認證
之後只要進行和 Github 相關的操作, 就會出現登入畫面:

填入剛剛產生的 token 登入即可。
## 在 Windows 上儲存帳號密碼
如果之前沒有設定, 你可能會需要每次都重新鍵入帳號、密碼, 這時可以鍵入以下指令記錄帳號密碼:
```
# 設定自動儲存帳號與密碼
git config --global credential.credentialStore wincredman
```
## 在 Linux 上儲存密碼
Linux 上可以存到 GPG 檔
```bash
$ git config --global credential.credentialStore gpg
```
要為 GPG 初始化之前需要先產生金鑰, 請鍵入以下指令後照提示完成:
```bash
$ gpg --gen-key
...
pub rsa3072 2022-04-04 [SC] [expires: 2024-04-03]
1B460470F71........5ACC6299E0DB94A647021
uid meebox <meebox@gmail.com>
sub rsa3072 2022-04-04 [E] [expires: 2024-04-03]
```
利用以下指令初始 GPG, 後面的參數就是剛剛建立金鑰時指定的使用者名稱:
```bash
$ pass init meebox
mkdir: created directory '/home/meebox/.password-store/'
Password store initialized for meebox
```
:::info
你可能會需要安裝 pass 套件。
:::
接著就可以存取 github:
```bash
$ git push
```
他會先跳出以下視窗要你登入, 請使用 token 登入:

這樣就可以了。