> ## Documentation Index
> Fetch the complete documentation index at: https://docs.parallelane.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 계정 & 인증

> 토큰/OAuth/SSH 계정 관리

Git 호스트 계정을 등록해 두면 저장소마다 어떤 신원과 인증을 쓸지 골라 끼울 수 있습니다.
선택한 값은 Git 네이티브 설정(`.git/config`, credential 저장소, SSH)에 기록되므로 터미널에서도 동일하게 적용됩니다.

<Frame>
  <img src="https://mintcdn.com/railgit/1HhHpeGsA-i8McQ3/images/settings-accounts.png?fit=max&auto=format&n=1HhHpeGsA-i8McQ3&q=85&s=0f65d40936ebe3e2adab3c3c46e72573" alt="토큰·OAuth·SSH 계정 카드가 나열되고 각 카드에 서버 종류와 인증 방식 배지가 붙은 계정(Accounts) 설정 화면" width="2906" height="1784" data-path="images/settings-accounts.png" />
</Frame>

## 계정은 어디서 관리하나요

<CardGroup cols={2}>
  <Card title="설정 → ParalleLane → 계정" icon="user">
    머신에 등록된 모든 계정을 추가·편집·삭제합니다.
  </Card>

  <Card title="설정 → 프로젝트(Projects) → 계정" icon="folder-git">
    저장소별로 쓸 계정을 선택합니다.
    선택하는 순간 그 저장소의 Git 설정에 기록됩니다.
  </Card>
</CardGroup>

## 계정 추가하기

<Info>
  **PRO 전용** — Basic은 계정을 2개까지 등록할 수 있고, 셀프호스트(GitHub Enterprise·GitLab Server·Bitbucket Server) 계정은 Pro 전용입니다.
  한도에 도달하면 **계정 추가** 버튼에 **PRO** 배지가 붙습니다. [요금제](/ko/quickstart#요금제)
</Info>

**설정 → ParalleLane → 계정** 패널 헤더의 **계정 추가** 버튼을 누르고 플랫폼(GitHub / GitHub Enterprise / GitLab / GitLab Server / Bitbucket / Bitbucket Server / SSH)을 고르면, 그에 맞는 입력 폼이 열립니다.
공통으로 **라벨 (선택)**, **git user.name**, **git user.email** 을 입력하고 **추가** 를 누릅니다.

<Frame>
  <img src="https://mintcdn.com/railgit/1HhHpeGsA-i8McQ3/images/settings-account-add-token.png?fit=max&auto=format&n=1HhHpeGsA-i8McQ3&q=85&s=5c53c4f658fef912701a6a1545efa10b" alt="인증 유형 선택과 git user.name·user.email 입력란이 있는 GitHub 계정 추가 모달" width="886" height="820" data-path="images/settings-account-add-token.png" />
</Frame>

<Note>
  GitHub과 Bitbucket Cloud에는 **인증 유형(Authentication Type)** 드롭다운이 표시됩니다.

  * **GitHub** — 신규 계정은 **GitHub으로 로그인**(OAuth)이 미리 선택되어 있습니다. 토큰을 쓰려면 **Personal Access Token** 으로 바꿉니다.
  * **Bitbucket Cloud** — **App Password** 만 선택할 수 있습니다.
</Note>

<Tabs>
  <Tab title="개인 액세스 토큰">
    * **host** — Cloud는 고정, Enterprise/Server 계열은 직접 입력합니다.
    * **username** — Bitbucket 계열에서만 나타나며 필수입니다.
    * **토큰** — 발급받은 토큰(GitHub `ghp_…`, GitLab `glpat-…`, Bitbucket 앱 비밀번호 등)을 붙여넣습니다.
      **토큰 생성 페이지 열기** 링크와 **필요 권한(최소)** 안내가 함께 제공됩니다.
    * **검증** — 성공하면 비어 있던 이름·이메일이 채워지고 username과 아바타가 저장됩니다.

    <Note>토큰은 OS 키체인에 저장되며 평문으로 디스크에 남지 않습니다.</Note>

    <Warning>새 토큰을 입력했다면 **검증** 이 성공해야 **추가**·**저장** 이 활성화됩니다.
    기존 계정을 편집할 때 토큰 칸을 비워 두면 저장된 토큰이 그대로 유지됩니다.</Warning>
  </Tab>

  <Tab title="GitHub OAuth">
    브라우저 로그인(디바이스 코드)으로 계정을 연결합니다.

    <Steps>
      <Step title="로그인 시작">
        **GitHub으로 로그인** 버튼을 누릅니다.
      </Step>

      <Step title="코드 확인 및 브라우저 인증">
        사용자 코드(예: `PLNE-2026`)가 표시됩니다.
        **코드 복사** 로 복사하고 **GitHub에서 인증하기** 로 브라우저를 열어 입력·승인합니다.
      </Step>

      <Step title="승인 완료 후 추가">
        승인이 끝나면 카드가 **@사용자명 계정으로 로그인됨** 으로 바뀌고 이름·이메일이 채워집니다.
        **추가** 를 눌러 저장합니다.
      </Step>
    </Steps>

    <Frame>
      <img src="https://mintcdn.com/railgit/1HhHpeGsA-i8McQ3/images/settings-account-add-oauth.png?fit=max&auto=format&n=1HhHpeGsA-i8McQ3&q=85&s=0e48c13513149ed67fa6f348057cfed0" alt="디바이스 코드 PLNE-2026과 GitHub에서 인증하기 버튼, 승인 대기 문구가 한 카드에 표시된 GitHub 계정 추가 모달" width="886" height="1004" data-path="images/settings-account-add-oauth.png" />
    </Frame>

    <Warning>
      OAuth 로그인은 github.com 계정에만 동작합니다.
      GitHub Enterprise·GitLab·Bitbucket Server는 토큰 방식만 사용합니다.
    </Warning>

    <Note>
      실행 중인 빌드에 GitHub 로그인이 구성되어 있지 않으면, 새 계정 추가 시 인증 유형이 토큰 입력으로 되돌아갑니다.
      이미 OAuth로 저장된 계정은 기존 자격 증명을 그대로 유지해 계속 작동합니다.
    </Note>
  </Tab>

  <Tab title="SSH 키">
    SSH 계정은 특정 호스트에 묶이지 않고 키만 지정합니다.

    * **키 선택** 에서 `~/.ssh` 의 기존 키를 고르거나 **새 SSH 키 만들기** 로 생성합니다.
    * **공개키 복사** 로 복사한 뒤 Git 호스트의 SSH 키 설정에 등록합니다.
      **GitHub에 등록** 같은 링크로 등록 페이지를 바로 열 수 있습니다.
    * **SSH 폴더 열기** 로 `~/.ssh` 를 Finder에서 엽니다.

    <Tip>SSH 계정이 실제로 쓰이려면 저장소의 원격 URL이 SSH 형식(`git@…`)이어야 합니다.
    HTTPS 원격이면 경고가 표시됩니다.</Tip>
  </Tab>
</Tabs>

## 연결 상태 확인

각 계정 카드에는 라벨, 이름·이메일, 서버 종류와 인증 방식 배지가 표시됩니다.
전역 기본 계정에는 **글로벌** 배지가, 특정 저장소에 적용된 계정에는 `# 저장소명` 배지가 붙습니다.

* **토큰/OAuth 계정** — 제목 옆에 `Online` / `Offline` 과 username이 표시되고, **상태 확인** 은 토큰을 재검증해 표시와 아바타를 갱신합니다.
* **SSH 계정** — **상태 확인** 을 누르면 테스트할 호스트를 고르는 팝오버가 열리고, 인증에 성공한 호스트가 카드에 나열됩니다.

카드의 **편집** 으로 라벨·이름·이메일·토큰을 수정하고, **삭제** 로 계정과 키체인의 토큰을 함께 제거합니다.

<Note>전역 기본 계정이거나 어떤 저장소에 적용된 계정은 **삭제** 가 비활성 상태입니다.
먼저 해당 저장소와 [설정 → ParalleLane → Git](/ko/settings/preferences)의 **기본 계정** 에서 다른 계정으로 바꾸세요.</Note>

## 저장소에 계정 적용하기

**설정 → 프로젝트(Projects) → 계정** 에서 저장소를 고르고, **이 저장소의 계정** 드롭다운에서 **Global (머신 전역 설정)** 또는 등록된 계정을 선택합니다.
선택하는 즉시 저장소의 Git 설정에 반영됩니다.

<Frame>
  <img src="https://mintcdn.com/railgit/1HhHpeGsA-i8McQ3/images/settings-account-per-repo.png?fit=max&auto=format&n=1HhHpeGsA-i8McQ3&q=85&s=1f2df95e7c0b94e3cf50d39e76d4366e" alt="프로젝트(Projects) 탭에서 선택한 저장소의 계정을 고르는 계정 설정 화면" width="2906" height="1784" data-path="images/settings-account-per-repo.png" />
</Frame>

| 선택         | 기록되는 내용                                                                               |
| ---------- | ------------------------------------------------------------------------------------- |
| **Global** | 저장소 로컬 오버라이드를 제거하고 머신 전역 Git 설정을 따릅니다.                                                |
| **SSH 계정** | `user.name`/`user.email` 과 `core.sshCommand` 를 저장소 로컬 설정에 기록합니다.                      |
| **토큰 계정**  | `user.name`/`user.email` 을 기록하고, 원격 URL의 사용자 정보를 갱신하며, 토큰을 Git credential 저장소에 저장합니다. |

<Note>계정 적용 대상 원격은 `origin` 하나입니다.
전역 기본 계정은 [설정 → ParalleLane → Git](/ko/settings/preferences)의 **기본 계정** 에서 지정합니다.</Note>

## 아바타

토큰/OAuth 계정은 호스트 API에서 프로필 사진을 가져오고, 실패하면 이메일 기반 Gravatar를 사용합니다.
SSH·Global 계정은 Gravatar를 사용합니다.

저장된 계정은 **편집** 화면의 **아바타** 행에서 다시 가져올 수 있습니다 — 모든 계정에 **Gravatar에서 동기화**, GitHub 계정에는 **GitHub에서 동기화** 버튼이 표시됩니다.
이메일이나 인증 방식을 바꾼 뒤라면 **저장** 을 먼저 눌러야 동기화 버튼이 활성화됩니다.

## 인증 오류 해결

Push·Pull·Fetch·Clone이 실패하면 원본 Git 오류와 함께 가능한 원인이 안내됩니다.

| 안내                 | 확인할 내용                                                          |
| ------------------ | --------------------------------------------------------------- |
| 경로별 자격증명 불일치       | 저장소의 `credential.useHttpPath` 를 끄거나 그 경로에 맞는 credential을 등록합니다. |
| 저장된 HTTPS 자격증명 없음  | 프로젝트 계정을 다시 선택하고 토큰이 OS credential 저장소에 남아 있는지 확인합니다.           |
| 토큰 또는 비밀번호 거절      | 토큰 만료·폐기 여부, username과 필요한 scope를 확인합니다.                        |
| 저장소 권한 부족          | 계정의 collaborator/team 권한과 조직 SSO 승인을 확인합니다.                     |
| 저장소를 찾을 수 없음       | remote URL과 비공개 저장소 조회 권한을 확인합니다.                               |
| SSH 공개키 거절         | 올바른 개인키를 쓰는지, 공개키가 호스트에 등록됐는지 확인합니다.                            |
| SSH host key 검증 실패 | `known_hosts` 항목을 확인하고 서버 키 변경이 정상인지 검증합니다.                     |

<Warning>
  오류 진단을 위해 토큰 값을 읽거나 로그에 남기지 않습니다.
  자격증명을 문서나 이슈에 붙여넣지 마세요.
</Warning>
