# GitHub Copilot CLI를 인증하기

명령줄에서 Copilot CLI을(를) 직접 사용할 수 있도록 Copilot을(를) 인증하세요.

## 인증 정보

BYOK(사용자 고유의 LLM 공급자 API 키) GitHub 를 사용하는 경우 인증이 필요하지 않습니다.

다른 GitHub Copilot CLI 사용법은 인증이 필요합니다.

인증이 필요한 Copilot CLI 경우 세 가지 방법을 지원합니다. 사용하는 방법은 대화형으로 작업하는지 또는 자동화된 환경에서 작업하는지에 따라 달라집니다.

* **OAuth 장치 흐름**: 대화형 사용을 위한 기본이자 권장 방법입니다. 실행 `/login`Copilot CLI하면 CLI가 일회성 코드를 생성하고 브라우저에서 인증하도록 지시합니다. 인증하는 가장 간단한 방법입니다.
  [OAuth 인증을](#authenticating-with-oauth) 참조하세요.
* \*\* 환경 변수\*\*: CI/CD pipelines, 컨테이너 및 비대화형 환경에 권장됩니다. 지원되는 토큰을 환경 변수(`COPILOT_GITHUB_TOKEN``GH_TOKEN`또는`GITHUB_TOKEN`)로 설정하고 CLI는 메시지를 표시하지 않고 자동으로 사용합니다.
  [환경 변수로 인증을 참조하세요](#authenticating-with-environment-variables).
* **GitHub CLI 페일백**: GitHub CLI(`gh`) (참고: `gh` CLI, `copilot`가 아님)이 설치되고 인증된 경우, Copilot CLI는 해당 토큰을 자동으로 사용할 수 있습니다. 이는 가장 낮은 우선 순위 메서드이며 다른 자격 증명을 찾을 수 없는 경우에만 활성화됩니다. [인증하기 GitHub CLI](#authenticating-with-github-cli)를 참조하세요.

인증 Copilot CLI 되면 로그인을 기억하고 모든 Copilot API 요청에 토큰을 자동으로 사용합니다. 여러 계정으로 로그인할 수 있으며 CLI는 마지막으로 사용한 계정을 기억합니다. 토큰 수명 및 만료는 계정 또는 조직 설정에서 토큰을 만든 방법에 따라 달라집니다.

## 인증되지 않은 사용

BYOK(사용자 고유의 LLM 공급자 API 키) Copilot CLI 를 사용하도록 구성하는 GitHub 경우 인증이 **필요하지 않습니다**.
Copilot CLI은 계정이나 토큰 없이 GitHub 구성된 공급자에 직접 연결할 수 있습니다.

그러나 인증이 없으면 GitHub 다음 기능을 **사용할 수 없습니다**.

* `/delegate`: Copilot cloud agent의 서버에서 GitHub이(가) 실행되어야 합니다.
* GitHub MCP 서버: API에 액세스 GitHub 하려면 인증 필요
* GitHub 코드 검색: GitHub의 검색 인덱스를 쿼리하려면 인증이 필요합니다.

BYOK를 GitHub 인증과 결합하면 AI 응답을 위한 선호 모델 사용은 물론, GitHub 및 코드 검색과 같은 `/delegate` 호스팅 기능을 모두 활용할 수 있는 장점이 있습니다.,

### 오프라인 모드

환경 변수 `COPILOT_OFFLINE`을 `true`로 설정하면 Copilot CLI가 GitHub의 서버에 연결하지 않고 실행됩니다. 오프라인 모드:

* 인증을 시도하지 않습니다 GitHub .
* CLI는 구성된 BYOK 공급자에 대해서만 네트워크 요청을 합니다.
* 원격 분석은 완전히 사용하지 않도록 설정되어 있습니다.

오프라인 모드는 BYOK 공급업체가 로컬에 있거나 동일한 격리된 환경(예: 외부 네트워크 액세스가 없는 온프레미스에서 실행되는 모델) 내에 있는 경우에만\*\*완전한 에어갭 \*\* 상태가 됩니다. 원격 또는 인터넷에 액세스할 수 있는 엔드포인트를 가리키는 경우 `COPILOT_PROVIDER_BASE_URL` 프롬프트 및 코드 컨텍스트는 네트워크를 통해 해당 공급자에게 계속 전송됩니다. 오프라인 모드가 없으면, GitHub 인증 없이 BYOK를 사용할 때에도 원격 분석이 정상적으로 전송됩니다.

### 지원되는 토큰 형식

| 토큰 형식              | 프리픽스          | 지원됨 | 비고                                                     |
| ------------------ | ------------- | --- | ------------------------------------------------------ |
| OAuth 토큰(디바이스 흐름)  | `gho_`        | 네   | 기본 메서드 `copilot login`을 통한                             |
| 세분화된 PAT           | `github_pat_` | 네   | 개인 계정(조직 소속이 아닌)으로, **Copilot 요청 권한**이 있어야 소유할 수 있습니다. |
| GitHub 앱 사용자-서버 연결 | `ghu_`        | 네   | 환경 변수를 통해                                              |
| 클래식 PAT            | `ghp_`        | 아니오 | 지원되지 않음 Copilot CLI                                    |

### Copilot CLI에서 자격 증명을 저장하는 방법

기본적으로 CLI는 서비스 이름 `copilot-cli`아래에 운영 체제의 키 집합에 OAuth 토큰을 저장합니다.

| Platform | 키체인                               |
| -------- | --------------------------------- |
| macOS    | 키 집합 액세스                          |
| Windows  | 자격 증명 관리자                         |
| 리눅스      | libsecret(GNOME Keyring, KWallet) |

시스템 키 집합을 사용할 수 없는 경우(예: 헤드리스 Linux 서버에서 설치되지 않은 `libsecret` 경우) CLI는 토큰을 일반 텍스트 구성 파일에 `~/.copilot/config.json`저장하라는 메시지를 표시합니다.

명령을 Copilot CLI 실행할 때 다음 순서대로 자격 증명을 확인합니다.

1. `COPILOT_GITHUB_TOKEN`환경 변수
2. `GH_TOKEN`환경 변수
3. `GITHUB_TOKEN`환경 변수
4. 시스템 키 집합의 OAuth 토큰
5. GitHub CLI(`gh auth token`) 대안

> \[!NOTE]
>
> * 환경 변수는 저장된 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`을(를) 실행하십시오.

   ```bash copy
   /login
   ```

2. 인증할 계정을 선택합니다. 데이터 보존의 경우 GitHub Enterprise Cloud 인스턴스의 호스트 이름을 입력합니다.

   ```text
   What account do you want to log into?
    1. GitHub.com
    2. GitHub Enterprise Cloud with data residency (*.ghe.com)
   ```

3. CLI는 일회성 사용자 코드를 표시하고 자동으로 클립보드에 복사하고 브라우저를 엽니다.

   ```text
   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...
   ```

4. 브라우저가 자동으로 열리지 않으면 `https://github.com/login/device` 확인 URL로 이동합니다.

5. 페이지의 필드에 일회성 코드를 붙여넣습니다.

6. 조직에서 SAML SSO를 사용하는 경우 access 부여하려는 각 조직 옆에 있는 **Authorize**를 클릭합니다.

7. 요청된 권한을 검토하고 **GitHub Copilot CLI 인증** 클릭합니다.

8. 터미널로 돌아갑니다. 인증이 완료되면 CLI에 성공 메시지가 표시됩니다.

   ```text
   Signed in successfully as Octocat. You can now use Copilot.
   ```

### `copilot login` 사용하여 인증

1. 터미널에서 실행 `copilot login`합니다. 데이터 상주와 함께 사용하는 GitHub Enterprise Cloud 경우 인스턴스의 호스트 이름을 전달합니다.

   ```bash copy
   copilot login
   ```

GitHub Enterprise Cloud의 경우:

```bash copy
copilot login --host HOSTNAME
```

CLI는 일회성 사용자 코드를 표시하고 자동으로 클립보드에 복사하고 브라우저를 엽니다.

```text
To authenticate, visit https://github.com/login/device and enter code 1234-5678.
```

1. 브라우저가 자동으로 열리지 않으면 `https://github.com/login/device` 확인 URL로 이동합니다.
2. 페이지의 필드에 일회성 코드를 붙여넣습니다.
3. 조직에서 SAML SSO를 사용하는 경우 access 부여하려는 각 조직 옆에 있는 **Authorize**를 클릭합니다.
4. 요청된 권한을 검토하고 **GitHub Copilot CLI 인증** 클릭합니다.
5. 터미널로 돌아갑니다. 인증이 완료되면 CLI에 성공 메시지가 표시됩니다.

   ```text
   Signed in successfully as Octocat.
   ```

## 환경 변수를 사용하여 인증

비대화형 환경의 경우 지원되는 토큰으로 환경 변수를 설정하여 인증할 수 있습니다. 이는 CI/CD 파이프라인, 컨테이너 또는 헤드리스 서버에 이상적입니다.

1. 방문하세요 [Fine-grained personal access tokens](https://github.com/settings/personal-access-tokens/new).
2. **리소스 소유자**에서 **개인 계정을** 선택합니다. 조직을 선택하지 마세요. 요청 권한은 **Copilot** 사용자 소유fine-grained personal access tokens에서만 사용할 수 있습니다.
3. **리포지토리 액세스**에서 사용 사례에 적합한 액세스 수준을 선택합니다.
   * **공용 리포지토리**로만 작업이 필요하다면 사용하세요.
   * 현재 및 향후 **리포지토리** 전체에 액세스를 얻으려면 모든 리포지토리에 액세스해야 합니다.
   * 특정 **리포지토리**에 대한 액세스를 제한하려는 경우에만 리포지토리를 선택합니다.
4. **사용 권한**에서 **계정** 탭을 선택합니다.
5. **권한 추가를** 클릭하고 요청을 선택합니다**Copilot**.
6. **토큰 생성**을 클릭합니다.
7. 터미널 또는 환경 구성에서 토큰을 내보냅니다. 우선 순위에 따라 `COPILOT_GITHUB_TOKEN`, `GH_TOKEN`또는 `GITHUB_TOKEN` 환경 변수를 사용합니다.

## GitHub CLI로 인증 중

설치하고 인증한 GitHub CLI 경우 Copilot CLI 해당 토큰을 대체로 사용할 수 있습니다. 이 메서드는 우선 순위가 가장 낮으며 환경 변수가 설정되지 않고 저장된 토큰을 찾을 수 없는 경우에만 활성화됩니다.

1. 인증되었는지 GitHub CLI 확인합니다.

   ```bash copy
   gh auth status
   ```

   데이터 상주와 함께 사용하는 GitHub Enterprise Cloud 경우 올바른 호스트 이름이 인증되었는지 확인합니다.

   ```bash copy
   gh auth status --hostname HOSTNAME
   ```

2. `copilot`를 실행합니다. Copilot CLI는 GitHub CLI 토큰을 자동으로 사용합니다.

3. CLI에서 인증된 계정을 확인하려면 실행 `/user` 합니다.

## 계정 간 전환

Copilot CLI 는 여러 계정을 지원합니다. 사용 가능한 계정을 나열하고 CLI 내에서 전환할 수 있습니다.
사용 가능한 계정을 나열하려면 `/user list` 프롬프트에서 Copilot CLI을(를) 실행하십시오.
다른 계정으로 전환하려면 프롬프트를 입력 `/user switch` 합니다.

다른 계정을 추가하려면 새 터미널 세션에서 실행 `copilot login` 하거나 CLI 내에서 로그인 명령을 실행하고 다른 계정으로 권한을 부여합니다.

## 자격 증명 로그아웃 및 제거

로그아웃하려면 `/logout` 프롬프트에서 Copilot CLI를 입력하십시오. 이렇게 하면 로컬로 저장된 토큰이 제거되지만 해당 토큰은 GitHub취소되지 않습니다.

OAuth 앱 권한 부여 GitHub 를 취소하고 다른 곳에서 사용하지 않도록 하려면 다음 단계를 수행합니다.

1. **설정** > **애플리케이션** > **권한 OAuth 앱으로** 이동합니다.
2. 설정 페이지로 이동합니다.
   1. 페이지의 오른쪽 위 모서리의 GitHub 프로필 사진을 클릭합니다.
   2. **설정**을 클릭합니다.
3. 왼쪽 사이드바에서 **애플리케이션**을 클릭합니다.
4. **인증된 OAuth 앱**에서 <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**를 선택합니다.

## 다음 단계

인증 문제가 발생하면 [GITHUB COPILOT CLI 인증 문제 해결](/ko/copilot/how-tos/copilot-cli/set-up-copilot-cli/troubleshoot-copilot-cli-auth)을 참조하세요.