---
title: "#깃허브: #듀얼계정 #리포관리"
url: "https://notes.junghanacs.com/notes/20240930T134814"
author: "Junghan Kim"
date: "2024-09-30T13:48:00+09:00"
lastmod: "2024-12-01T06:30:00+09:00"
tags: ["bib","github"]
description: "깃허브 듀얼 계정을 SSH 별칭으로 관리하며 리포지토리를 분리하는 방법을 적은 기록이다."
---

> [!abstract] 이 노트에 대하여
> 
> 개인과 다른 계정을 동시에 쓰기 위해 SSH 별칭과 clone 경로를 어떻게 나눴는지 실제 명령 위주로 정리한다. 한 번 설정해 두면 오래 잊고 지내다가 다시 필요할 때 큰 도움이 되는 유형의 노트다.

## BIBLIOGRAPHY

- “Github에 Multiple Ssh Key 사용하기.” n.d. Accessed February 3, 2025. <https://jason-heo.github.io/programming/2021/01/01/github-multiple-ssh-keys.html>.

## 관련메타

-   [#깃허브](https://notes.junghanacs.com/meta/20230723T061300)

## 이전에 멀티 계정 처리를 해놔서 다행이다. 동작한다.

[2023-07-31 Mon 09:47]

```shell
git clone git@github-junghanacs.com:junghanacs/junghanacs.github.io.git
```

## junghanacs github 계정으로 활용하려면

[2023-05-22 Mon 17:19]

이전에 멀티 계정 처리를 해놔서 다행이다. 동작한다.

```text
git clone git@github-junghanacs.com:junghanacs/junghanacs.github.io.git
6220  git status
6221  cd junghanacs.github.io
6222  ls
6223  echo "Hello World" > index.html
6224  rm README.md
6225  gadd .
6226  gcomm "Init"
6227  gpm
```

### notes

## _home/junghan_.ssh/config

[2025-02-03 Mon 19:17]

기록

```nil

Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa

Host github-proton.com
HostName github.com
User git
IdentityFile ~/.ssh/junghan0611_proton

Host github-junghanacs.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_junghanacs_gmail
```

## 참고 github에 multiple ssh key 사용하기

([“Github에 Multiple Ssh Key 사용하기” n.d.](https://notes.junghanacs.com/notes/20240930T134814#citeproc_bib_item_1))

github에 ssh rsa 공개키를 등록해두면 암호를 입력할 필요가 없어서 편하다. 그런데 github에는 동일 공개키를 1개의 Repository에만 저장할 수 있다. 따라서 두 개 이상의 Repository를 사용하는 경우 공개 키도 두 개 이상을 등록해야하고 비밀 키도 두 개 이상이 된다.

### 들어가며

github에 ssh rsa 공개키를 등록해두면 암호를 입력할 필요가 없어서 편하다. 그런데 github에는 동일 공개키를 1개의 Repository에만 저장할 수 있다. 따라서 두 개 이상의 Repository를 사용하는 경우 공개 키도 두 개 이상을 등록해야하고 비밀 키도 두 개 이상이 된다.

문제는 `git` 명령을 사용할 때 기본으로 읽는 비밀키가 `$HOME/.ssh/id_rsa` 라는 점이다. 따라서 기본 공개 키가 아닌 다른 공개 키를 입력한 경우 인증이 불가능하는 문제가 있다.

이를 해결하는 방법에는 두 가지 방법이 있다.

### 1) config file을 이용하는 방법

`$HOME/.ssh/config` 파일에 아래와 같은 내용을 등록한다.

```text
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa

Host github-project-B.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa-project-B
```

`Host` 는 실제 host 이름의 Alias를 의미한다. `HostName` 에 등록된 값이 실제 host 이름이다.

이제 아래의 명령을 이용하면 `~/.ssh/id_rsa-project-B` 비밀키를 사용할 수 있다.

```text
$ git clone git@github-project-B.com:username/project-B.git project-B
```

(출처: <https://stackoverflow.com/a/56067132/2930152>)

### 2) GIT_SSH_COMMAND를 이용하는 방법

Git 2.3.0부터 사용할 수 있는 방법이다.

우선 `GIT_SSH_COMMAND` 라는 쉘 변수를 등록한다.

```text
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa-project-B'
```

이제부터는 일반적인 `git` 명령을 사용하면 된다.

```text
$ git clone git@github.com:username/project-B.git project-B
```

프로젝트가 여러 개인 경우 `GIT_SSH_COMMAND` 변수 값을 변경해야하므로 약간 번거로울 수 있다. 하지만, config file을 만들지 않아도 되므로 키만 잘 관리하고 있으면 개발이나 운영 환경을 만들기 쉽다.

(출처: <https://stackoverflow.com/a/29754018/2930152>)
