---
# System prepended metadata

title: 改用 token 登入 github
tags: [Git, Github]

---

###### 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. 在**搜尋**欄中輸入『認證管理員』找到後執行：

    ![](https://i.imgur.com/dXuSyKZ.png)

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

    ![](https://i.imgur.com/Hhi8ild.png)

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

    ![](https://i.imgur.com/Vn02aB2.png)

1. 個別點選後刪除認證即可。


## 改用 token 認證

之後只要進行和 Github 相關的操作, 就會出現登入畫面：

![](https://i.imgur.com/CyeqjW0.png)

填入剛剛產生的 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 登入：

![](https://i.imgur.com/vyLJuGb.png)

這樣就可以了。
