認証について
独自の LLM プロバイダー API キー (BYOK) を使用する場合、 GitHub 認証は必要ありません。
その他の GitHub Copilot CLI の使用には認証が必要です。
認証が必要な場合、 Copilot CLI では 3 つの方法がサポートされます。 使用する方法は、対話形式で作業しているか、自動化された環境で作業しているかによって異なります。
-
**OAuth デバイス フロー**: 対話型で使用するための既定の推奨される方法。 `/login`でCopilot CLIを実行すると、CLI によって 1 回限りのコードが生成され、ブラウザーで認証するように指示されます。 これは認証を行う最も簡単な方法です。 -
**環境変数**: CI/CD パイプライン、コンテナ、非対話型環境のために推奨されます。 サポートされているトークンを環境変数 (`COPILOT_GITHUB_TOKEN`、 `GH_TOKEN`、または `GITHUB_TOKEN`) として設定すると、CLI はプロンプトを表示せずに自動的に使用します。 -
** GitHub CLIフォールバック**: GitHub CLI (`gh`) (注: `gh`ではなく、`copilot` CLI) がインストールされ、認証されている場合、Copilot CLIはそのトークンを自動的に使用できます。 これは最も優先度の低い方法であり、他の資格情報が見つからない場合にのみアクティブになります。
認証されると、 Copilot CLI はログインを記憶し、すべての Copilot API 要求にトークンを自動的に使用します。 複数のアカウントでログインでき、CLI は最後に使用したアカウントを記憶します。 トークンの有効期間と有効期限は、アカウントまたは組織の設定でトークンがどのように作成されたかによって異なります。
認証されていない使用
独自の LLM プロバイダー API キー (BYOK) を使用するように Copilot CLI を構成する場合、 GitHub 認証は 必要ありません。 Copilot CLI は、 GitHub アカウントまたはトークンを使用せずに、構成済みのプロバイダーに直接接続できます。
ただし、 GitHub 認証がないと、次の機能は 使用できません。
-
`/delegate`: Copilotクラウドエージェントのサーバー上で実行されるGitHubが必要です -
GitHub MCP サーバー: GitHub API にアクセスするには認証が必要です -
GitHub コード検索: GitHubの検索インデックスに対してクエリを実行するには認証が必要です
BYOK とGitHub認証を組み合わせて、AI 応答に適したモデルと、GitHubやコード検索などの/delegateホストされる機能へのアクセスの両方を最大限に活用できます。
オフライン モード
`COPILOT_OFFLINE`環境変数を`true`に設定すると、Copilot CLIはGitHubのサーバーに接続せずに実行されます。 オフライン モードの場合:
* GitHub認証は試行されません。
- CLI は、構成済みの BYOK プロバイダーに対してのみネットワーク要求を行います。
- テレメトリは完全に無効になっています。
オフライン モードが完全にエアギャップされるのは、BYOK プロバイダーがローカルであるか、同じ分離環境内にある場合のみです (たとえば、外部ネットワーク アクセスがない状態でオンプレミスで実行されているモデルのように)。
COPILOT_PROVIDER_BASE_URLがリモートまたはインターネットにアクセス可能なエンドポイントを指している場合、プロンプトとコード コンテキストは引き続きネットワーク経由でそのプロバイダーに送信されます。 オフライン モードを使用しない場合、 GitHub 認証なしで BYOK を使用している場合でも、テレメトリは通常どおり送信されます。
サポートされているトークンの種類
| トークンの種類 | Prefix | サポートされています | 注記 |
|---|---|---|---|
| OAuth トークン (デバイス フロー) | gho_ | イエス |
`copilot login`を使用した既定のメソッド |
| 詳細な PAT | github_pat_ | イエス | 必要なアクセス許可Copilot Requestsを含める必要があります。 |
| GitHub アプリのユーザーからサーバーへの通信 | ghu_ | イエス | 環境変数経由で |
| クラシック PAT | ghp_ | いいえ |
Copilot CLI によってサポートされていません |
Copilot CLI の資格情報の保存方法
既定では、CLI は OAuth トークンをオペレーティング システムのキーチェーンのサービス名 copilot-cliに格納します。
| Platform | キーチェーン |
|---|---|
| macOS | キーチェーンアクセス |
| Windows | 資格情報マネージャー |
| Linux | libsecret (GNOME Keyring, KWallet) |
`libsecret`がインストールされていないヘッドレス Linux サーバーなど、システム キーチェーンが使用できない場合、CLI はトークンを`~/.copilot/config.json`のプレーンテキスト構成ファイルに格納するように求めます。
コマンドを実行すると、 Copilot CLI は次の順序で資格情報を確認します。
-
`COPILOT_GITHUB_TOKEN` 環境変数 -
`GH_TOKEN` 環境変数 -
`GITHUB_TOKEN` 環境変数 - システム キーチェーンからの OAuth トークン
- GitHub CLI (
gh auth token) フォールバック
メモ
- 環境変数は、格納されている OAuth トークンを自動的にオーバーライドします。 別のツール
GH_TOKEN設定した場合、CLI では、copilot loginからの OAuth トークンの代わりにそのトークンが使用されます。 予期しない動作を回避するために、CLI で使用する予定のない環境変数を設定解除します。 - BYOK プロバイダー環境変数 (
COPILOT_PROVIDER_BASE_URL、COPILOT_PROVIDER_API_KEYなど) を構成する場合、 Copilot CLI は、 GitHub 認証の状態に関係なく、これらを AI モデル要求に使用します。 GitHub トークンは、 GitHubホストされる機能にのみ必要です。
OAuth を使用した認証
OAuth デバイス フローは、対話型で使用するための既定の認証方法です。 認証するには、/loginからCopilot CLIを実行するか、ターミナルからcopilot loginします。
`/login` で認証する
1.
Copilot CLIから、/loginを実行します。
/login
/login
-
認証するアカウントを選択します。 データ所在地を使用した GitHub Enterprise Cloudは、インスタンスのホスト名を入力します
What account do you want to log into? 1. GitHub.com 2. GitHub Enterprise Cloud with data residency (*.ghe.com) -
CLI では、1 回限りのユーザー コードが表示され、自動的にクリップボードにコピーされ、ブラウザーが開きます。
Waiting for authorization... Enter one-time code: 1234-5678 at https://github.com/login/device Press any key to copy to clipboard and open browser... -
ブラウザーが自動的に開かなかった場合は、
https://github.com/login/deviceの確認 URL に移動します。 -
1 回限りのコードをページのフィールドに貼り付けます。
-
組織で SAML SSO を使用している場合は、accessを付与する各組織の横にある Authorize をクリックします。
-
要求されたアクセス許可を確認し、GitHub Copilot CLI を認証をクリックします。
-
ターミナルに戻ります。 認証が完了すると、CLI によって成功メッセージが表示されます。
Signed in successfully as Octocat. You can now use Copilot.
`copilot login` で認証する
-
ターミナルから、
copilot loginを実行します。 データ所在地で GitHub Enterprise Cloud を使用している場合は、インスタンスのホスト名を渡します。Bash copilot login
copilot loginGitHub Enterprise Cloudの場合:Bash copilot login --host HOSTNAME
copilot login --host HOSTNAMECLI では、1 回限りのユーザー コードが表示され、自動的にクリップボードにコピーされ、ブラウザーが開きます。
To authenticate, visit https://github.com/login/device and enter code 1234-5678. -
ブラウザーが自動的に開かなかった場合は、
https://github.com/login/deviceの確認 URL に移動します。 -
1 回限りのコードをページのフィールドに貼り付けます。
-
組織で SAML SSO を使用している場合は、accessを付与する各組織の横にある Authorize をクリックします。
-
要求されたアクセス許可を確認し、GitHub Copilot CLI を認証をクリックします。
-
ターミナルに戻ります。 認証が完了すると、CLI によって成功メッセージが表示されます。
Signed in successfully as Octocat.
環境変数を使用した認証
非対話型環境の場合は、サポートされているトークンを使用して環境変数を設定することで認証できます。 これは、CI/CDパイプライン、コンテナー、またはヘッドレスサーバーに最適です。
-
[ Fine-grained personal access tokens ](https://github.com/settings/personal-access-tokens/new)にアクセスしてください。 - [アクセス許可] で [ アクセス許可の追加 ] をクリックし、 Copilot 要求を選択します。
-
**[トークンの生成]** をクリックします。 - ターミナルまたは環境の構成でトークンをエクスポートします。
COPILOT_GITHUB_TOKEN、GH_TOKEN、または環境変数GITHUB_TOKEN(優先順位順) を使用します。
GitHub CLI を用いた認証
もし GitHub CLI がインストールされて認証されている場合、Copilot CLI はそのトークンをフォールバックとして使用できます。 このメソッドの優先度は最も低く、環境変数が設定されておらず、格納されているトークンが見つからない場合にのみアクティブになります。
-
GitHub CLIが認証されていることを確認します。Bash gh auth status
gh auth statusデータ所在地で GitHub Enterprise Cloud を使用する場合は、正しいホスト名が認証されていることを確認します。
Bash gh auth status --hostname HOSTNAME
gh auth status --hostname HOSTNAME -
`copilot` を実行します。 Copilot CLI では、GitHub CLI トークンが自動的に使用されます。 -
`/user`を実行して、CLI で認証されたアカウントを確認します。
アカウント間の切り替え
Copilot CLI では、複数のアカウントがサポートされています。 使用可能なアカウントを一覧表示し、CLI 内から切り替えることができます。 使用可能なアカウントを一覧表示するには、`/user list` プロンプトからCopilot CLIを実行します。 別のアカウントに切り替えるには、プロンプトに「 `/user switch` 」と入力します。
別のアカウントを追加するには、新しいターミナル セッションから copilot login を実行するか、CLI 内からログイン コマンドを実行して、もう一方のアカウントで承認します。
サインアウトして資格情報を削除する
サインアウトするには、/logout プロンプトで「Copilot CLI」と入力します。 これにより、ローカルに格納されているトークンは削除されますが、 GitHubでは取り消されません。
GitHubで OAuth アプリの承認を取り消し、他の場所で使用されないようにするには、次の手順に従います。
1. 設定 > Applications > Authorized OAuth Apps に移動します。
- 設定ページに移動します。 1. GitHubのページの右上隅にあるプロフィール画像をクリックします。 1. [設定] をクリックします。
- 左側のサイドバーで、[ アプリケーション] をクリックします。
-
**Authorized OAuth Apps** で、<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-kebab-horizontal" aria-label="The horizontal kebab icon" role="img"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg> の横にある **** をクリックしてメニューを展開し、 **Revoke** を選択します。