=================
== The Archive ==
=================

여러 개의 Github 계정을 한 곳에서 동시에 사용하기

|

AI Summary

  • 개인용과 업무용 GitHub 계정을 위해 각각 별도의 SSH 키를 생성하고 ~/.ssh 폴더에 저장한다.
  • 생성한 공개키를 각 GitHub 계정의 Settings > SSH and GPG keys에 등록하여 인증을 완료한다.
  • ~/.ssh/config 파일에 각 계정별로 HostIdentityFile을 설정해 SSH 접속 시 키를 구분하도록 한다.
  • ssh-add 명령어로 기존 키를 삭제하고 새로 생성한 키들을 등록하여 로컬 SSH 에이전트에 반영한다.
  • ~/.gitconfig와 별도의 설정 파일(.gitconfig-work)을 만들어 작업 디렉토리별로 사용자 정보(email, name)를 분리 설정한다.
  • 설정 후 테스트용 리포지토리에 커밋하여 각 계정으로 정상 커밋되는지 확인하면 다중 GitHub 계정 관리가 완료된다.
Updated: 2025-11-22 15:37 UTC

SSH 키들을 생성

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# OSX에서 사용자의 ssh 키를 저장하는 디렉토리이다. 일단 여기로 이동해서 작업해야 편하다.
$ cd ~/.ssh

# 깃허브 개인 계정에서 사용중인 이메일주소로 ssh 키를 생성하는 명령어. 굳이 깃허브 계정과 동일할 필요는 없다.
$ ssh-keygen -t rsa -b 4096 -C "youremail@forpersonal.com"
Generating public/private rsa key pair.
Enter a file in which to save the key (/Users/yourusername/.ssh/id_rsa) : id_rsa_personal

# 깃허브 업무 계정에서 사용중인 이메일주소로 ssh 키를 생성하는 명령어. 굳이 깃허브 계정과 동일할 필요는 없다.
$ ssh-keygen -t rsa -b 4096 -C "youremail@forwork.com"
Generating public/private rsa key pair.
Enter a file in which to save the key (/Users/yourusername/.ssh/id_rsa) : id_rsa_work

깃허브 계정에 키를 추가

1
2
# 클립보드에 id_rsa_personal.pub 의 내용을 복사함
$ pbcopy < ~/.ssh/id_rsa_personal.pub

~/.ssh/config 설정

1
2
3
4
5
6
7
8
9
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_personal   // id_rsa_work 로 써도 상관없다. 본인이 맞게 설정

Host example.github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_work       // id_rsa_personal 로 써도 마찬가지로 상관없다.

새로운 키들을 로컬에 저장

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# 현재 저장되어있는 identities를 삭제
# 주의!!
$ ssh-add -D

# 새로운 키들 등록
$ ssh-add id_rsa_personal
$ ssh-add id_rsa_work

# 제대로 저장되었는지 확인
$ ssh-add -l

# 깃허브가 키들을 인식하는지 확인
# ~/.ssh/config 에서 Host를 입력하면 된다.
# successfully authenticated 가 뜨면 정상적
$ ssh -T personal.github.com
$ ssh -T work.github.com

~/.gitconfig 설정

1
2
3
4
5
[user]
    email = {personal_email}
    name = {personal_name}
[includeIf "gitdir:~/work_directory/"]
    path = .gitconfig-work
1
2
3
4
5
[user]
    email = {work_email}
    name = {work_name}
[github]
    user = {work_name}

테스트

References

Categories:

Tags: