# GitHub Copilot CLI 認証のトラブルシューティング

Copilot CLIにサインインするときの認証エラーを診断します。

## 認証エラー

認証エラーが発生した場合は、次の表を使用して原因と解決策を特定します。

| 問題点                                                  | 原因                               | 修正                              | 詳細情報 |
| ---------------------------------------------------- | -------------------------------- | ------------------------------- | ---- |
| 認証情報が見つかりません                                         | 資格情報が格納されていない                    |                                 |      |
| `copilot login` を実行します。                              |                                  |                                 |      |
| [認証情報が見つかりません](#no-authentication-information-found) |                                  |                                 |      |
| 401 権限がありません                                         | トークンの取り消しまたはアクセス許可の不十分           | アクセス許可を持つトークンを生成する              |      |
| [トークンの期限切れまたは取り消し](#token-expired-or-revoked)        |                                  |                                 |      |
| Token (classic) 拒否                                   |                                  |                                 |      |
| Token (classic) (`ghp_`)                             | 細かい粒度を使用する personal access token |                                 |      |
| \[                                                   |                                  |                                 |      |
| Token (classic) 拒否]\(#token-classic-rejected)        |                                  |                                 |      |
| 403 禁止またはポリシーが拒否されました                                |                                  |                                 |      |
| Copilot ライセンスまたはエンタープライズ/組織ポリシー                      | サブスクリプションと組織の設定を確認する             |                                 |      |
| [Access拒否](#access-denied)                           |                                  |                                 |      |
| キーチェーンは使用できません                                       | システム キーチェーンがありません                |                                 |      |
| `libsecret`をインストールするか、プレーンテキストを受け入れる                 |                                  |                                 |      |
| [キーチェーンアクセスの失敗](#keychain-access-failure)            |                                  |                                 |      |
| アカウントが間違っている                                         | 複数のアカウントまたは環境変数の上書き              | 環境変数を確認し、`/user switch` を使用します。 |      |
| [アカウントが間違っている](#wrong-account)                       |                                  |                                 |      |

## 認証情報が見つかりません

Copilot CLI には、次のエラーが表示されます。

<!-- markdownlint-disable GHD005 -->

```text
Error: No authentication information found
Copilot can be authenticated with GitHub using an OAuth Token or a Fine-Grained Personal Access Token
```

<!-- markdownlint-enable GHD005 -->

### 原因

チェックされた場所には資格情報が存在しません。

### 修正

認証が見つからない場所を見つけて、accessを復元するには、次の手順に従います。

#### 認証の状態を確認する

```bash copy
gh auth status
```

ログインしていないことを示すメッセージが表示された場合は、 `gh auth login` でログインするか、 `copilot login`で OAuth フローを使用します。

#### 認証環境変数が設定されているかどうかを確認する

環境変数を使用している場合は、 `COPILOT_GITHUB_TOKEN`、 `GH_TOKEN`、または `GITHUB_TOKEN` 環境変数が設定されているかどうかを確認します。

```bash copy
echo $COPILOT_GITHUB_TOKEN
```

コマンドが何も出力しない場合、変数は設定されません。 変数を有効なトークンに設定します。 トークンを生成するには、[GitHub Copilot CLI の認証](/ja/copilot/how-tos/copilot-cli/set-up-copilot-cli/authenticate-copilot-cli#authenticating-with-environment-variables) を参照してください。

```bash copy
 export $COPILOT_GITHUB_TOKEN=PERSONAL_ACCESS_TOKEN
```

#### macOS キーチェーン

```bash copy
security find-generic-password -s copilot-cli
```

項目が見つからない場合は、 `/login` で再度認証するか、 `copilot login` して作成します。
項目が見つかったが認証に失敗した場合は、保存された資格情報を削除し、 `/login` または `copilot login`で再び認証します。

```bash copy
  security delete-generic-password -s copilot-cli
```

## トークンの期限切れまたは取り消し

Copilot CLI には、次のエラーが表示されます。

<!-- markdownlint-disable GHD005 -->

```text
Error: Authentication failed

Your GitHub token may be invalid, expired, or lacking the required permissions.

To resolve this, try the following:
  • Start 'copilot' and run the '${LOGIN_COMMAND}' command to re-authenticate
  • If using a Fine-Grained PAT, ensure it has the 'Copilot Requests' permission enabled
  • If using COPILOT_GITHUB_TOKEN, GH_TOKEN or GITHUB_TOKEN environment variable, verify the token is valid and not expired
  • Run 'gh auth status' to check your current authentication status
```

<!-- markdownlint-enable GHD005 -->

### 原因

トークンが取り消されたか、有効期限が切れているか、必要なアクセス許可なしで作成されました。

### 修正

GitHubに対するトークンの状態とアクセス許可を確認します。 トークンは、fine-grained personal access token (組織ではない) が所有し、\*\*\*\* を持つCopilotである必要があります。 必要に応じて、必要なアクセス許可を持つ新しいトークンを生成します。

## Token (classic) 拒否

`ghp_`で始まるトークンは暗黙的に無視され、CLI はトークンが設定されていないかのように動作します。

### 原因

クラシック personal access tokens は、 Copilot CLIではサポートされていません。

### 修正

きめ細かい personal access token を必要なスコープで生成します。

## Access拒否

Copilot CLI には、次のいずれかのエラーが表示されます。

```text
Error: Access denied by policy settings

Your Copilot CLI policy setting may be preventing access. This can happen when:
  • Your organization has restricted Copilot access
  • Your Copilot subscription does not include this feature
  • Required policies have not been enabled by your administrator

To resolve this, visit your Copilot settings: 
```

### 原因

組織ポリシーが GitHub Copilot CLIをブロックしているか、ユーザー アカウントに GitHub Copilot ライセンスがありません。

### 修正

* アカウントにアクティブな GitHub Copilot ライセンスがあることを確認します。
* 組織の管理者に、組織ポリシーで GitHub Copilot CLI を有効にするよう依頼します。

## キーチェーンアクセス失敗

ログイン中に、CLI によってシステム キーチェーンが使用できないことを確認するメッセージが表示され、資格情報をプレーンテキストで格納するかどうかを確認するメッセージが表示されます。

```text
System keychain unavailable. Store token in plaintext config file? (y/N)
```

### 原因

システム キーチェーンにアクセスできません。 これは、 `libsecret`、ヘッドレス サーバー、またはアクセス許可の問題があるシステムがない Linux システムで発生する可能性があります。

### 修正

オペレーティング システムの手順に従って、安全に資格情報の保存を復元します。

#### macOS または Windows

macOS では、キーチェーン Access アプリが使用可能であることを確認し、ログイン キーチェーンのロックを解除できます。
Windowsで、Credential Manager が使用可能であることを確認し、Windows Vault にアクセスできます。
システム資格情報マネージャーにアクセスできない場合は、プロンプトが表示された場合はプレーンテキストストレージを使用するか、環境変数トークンを用いて認証し、`/login` または `copilot login` を再度実行してください。

#### Linux

Linux では、システム キーリングを使用するか、プレーンテキストで資格情報を格納します。

1. `secret-tool`がインストールされているかどうかを確認します。

   ```bash copy
   command -v secret-tool
   ```

2. `secret-tool`が見つからない場合、または検索コマンドが結果を返さない場合は、`libsecret`とその依存関係をインストールします。 たとえば、Debian と Ubuntu では、次のコマンドを使用できます。

   ```bash copy
   sudo apt install libsecret-1-0 gnome-keyring seahorse
   ```

3. `secret-tool`がインストールされたら、キーリングで保存された資格情報を検索します。

   ```bash copy
   secret-tool search copilot-cli
   ```

   コマンドから 1 つ以上の結果が返された場合、資格情報はキーリングに存在します。 ターミナルで`copilot login`を実行するか、`/login`内でCopilot CLIをもう一度実行してください。

## アカウントが間違っている

間違ったユーザーが認証されているか、トークンが間違った組織に属しています。

### 原因

複数のアカウントが格納されているか、環境変数が格納されているトークンをオーバーライドしています。

### 修正

アカウントを切り替えるには、CLI プロンプトで `/user switch` を使用するか、 `/logout` でサインアウトし、正しいアカウントで `/login` を実行します。