Mac에서 GitHub 계정 2개 운영하기

개인 프로젝트 · 회사 프로젝트 분리 — SourceTree 없이, 터미널만으로

이 글에서 다루는 것

  • 하나의 Mac에서 GitHub 개인 계정과 회사 계정을 동시에 사용하는 방법을 설명
  • SSH 키 분리 → SSH Config 설정 → gitconfig 분기 → 실제 push까지, 직접 겪은 병목 포인트를 포함해 한 번에 따라할 수 있도록 작성

왜 이 설정이 필요한가

GitHub 계정이 두 개 있다면 — 예를 들어 개인 계정(xxxx@gmail.com)과 회사 계정(yyyy@company.com) — 아무 설정 없이 사용하면 모든 commit이 글로벌로 설정된 한 계정으로만 올라간다. push도 마찬가지로 기본 SSH 키 하나로만 시도하기 때문에 권한 오류난다

이 문제를 해결하는 핵심은 두 가지이다

  • SSH 키 분리 — 계정별로 다른 키를 사용하도록 설정
  • gitconfig 분기 — 프로젝트(폴더)에 따라 commit 작성자를 자동으로 전환

전체 흐름 한눈에 보기

[1] SSH 키 생성 (개인용)
└─ ~/.ssh/id_ed12345_personal
└─ ~/.ssh/id_ed12345_personal.pub

[2] GitHub 개인 계정에 공개 키 등록
└─ Settings → SSH and GPG keys → New SSH key

[3] ~/.ssh/config 에 Host alias 추가
└─ github-personal → 개인 키 사용
└─ github.com → 회사 키 사용 (기존 그대로)

[4] ~/.gitconfig 에 includeIf 추가
└─ ~/personal/ 폴더 → 개인 계정 자동 적용
└─ 그 외 모든 폴더 → 회사 계정 (글로벌 기본값)

[5] 개별 프로젝트에 로컬 계정 지정 (선택)
└─ git config user.email "xxxx@gmail.com"

SSH 키 생성

회사 계정은 이미 SSH 키가 있고 정상 동작 중이라면 건드리지 않아도 된다. 개인 계정용 키만 새로 만든다

ssh-keygen -t ed25519 -C "xxxx@gmail.com" -f ~/.ssh/id_ed12345_personal

실행하면 passphrase를 물어본다. 그냥 Enter 두 번 누르면 된다

생성 확인

ls ~/.ssh/
# id_ed12345_personal      ← 개인 키 (절대 공유하면 안 됨)
# id_ed12345_personal.pub  ← 공개 키 (GitHub에 등록할 것)

💡 회사 키 파일명 확인 방법
ls ~/.ssh/ 로 파일 목록을 보면 id_ed25519 또는 id_rsa 형태로 되어 있습니다. 이후 config 설정에서 이 파일명을 그대로 사용한다


GitHub 개인 계정에 공개 키 등록

공개 키 내용을 복사한다

cat ~/.ssh/id_ed12345_personal.pub
# ssh-ed25519 AAAA... 로 시작하는 한 줄이 출력된다.
전체 복사.

개인 GitHub 계정으로 로그인 후

1. Settings → SSH and GPG keys → New SSH key
2. Title: personal-mac (구분 가능한 이름으로)
3. Key type: Authentication Key
4. Key: 복사한 공개 키 붙여넣기
5. Add SSH key 클릭

⚠️ 회사 계정과 개인 계정을 혼동하지 않도록
공개 키를 잘못된 GitHub 계정에 등록하면 인증은 되지만 엉뚱한 계정으로 연결된다. 개인 이메일로 로그인했는지 꼭 확인해야 한다

SSH Config 설정

nano ~/.ssh/config

아래 내용을 입력합니다

# 개인 계정
Host github-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed12345_personal

# 회사 계정 (기존 키 파일명에 맞게 수정)
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed67890

저장: Ctrl+XYEnter

💡 nano 단축키
저장하고 나가기: Ctrl+XYEnter
저장 없이 나가기: Ctrl+XN

연결 테스트

ssh -T git@github-personal
# → Hi xxxx! You've successfully authenticated ✅

ssh -T git@github.com
# → Hi yyyy! You've successfully authenticated ✅

두 계정 모두 인증이 확인되면 다음으로 넘어간다

gitconfig 계정 분기 설정

commit 작성자(이름, 이메일)를 프로젝트 폴더에 따라 자동으로 전환하는 설정이다

개인용 gitconfig 파일 생성

nano ~/.gitconfig-personal
[user]
  name = xxxx
  email = xxxx@gmail.com

글로벌 gitconfig에 includeIf 추가

nano ~/.gitconfig

파일 맨 아래에 추가

[includeIf "gitdir:~/personal/"]
  path = ~/.gitconfig-personal

이제 ~/personal/ 폴더 안에서는 개인 계정이, 그 외에서는 글로벌(회사) 계정이 자동으로 적용된다

확인

# 개인 폴더
cd ~/personal
git config user.email
# → xxxx@gmail.com ✅

# 그 외 폴더
cd ~
git config user.email
# → yyyy@company.com ✅

특정 프로젝트에만 개인 계정 지정 (선택)

~/personal/ 폴더 밖에 있지만 개인 계정으로 push하고 싶은 프로젝트가 있을 경우, 해당 프로젝트 안에서 로컬 설정을 지정할 수 있다

cd ~/workplace/claude-code-mastery
git config user.name "xxxx"
git config user.email "xxxx@gmail.com"

# 확인
git config user.email
# → xxxx@gmail.com ✅

이 설정은 해당 프로젝트 안의 .git/config에만 저장되며, 다른 프로젝트에는 영향을 주지 않는다.

우선순위 (높은 순) 로컬 설정 git config user.email (해당 프로젝트에만 적용)

includeIf ~/personal/ 폴더일 때 자동 적용

글로벌 설정 kim@softment.co.kr (기본값, 회사 계정)

새 프로젝트를 개인 계정으로 push하는 전체 흐름

# 1. 프로젝트 폴더로 이동
cd ~/workplace/claude-code-mastery

# 2. git 초기화 (폴더 안에 .git이 없을 때만)
git init

# 3. 개인 계정 지정 (git init 이후에 실행해야 합니다)
git config user.name "xxxx"
git config user.email "xxxx@gmail.com"

# 4. 파일 추가 및 첫 커밋
git add .
git commit -m "first commit"

# 5. GitHub에 저장소 생성 후, remote 추가
#    github.com 대신 github-personal alias 사용 ← 핵심
git remote add origin git@github-personal:xxxx/claude-code-mastery.git

# 6. push
git branch -M main
git push -u origin main

⚠️ 자주 하는 실수 — remote URL 복붙 금지
GitHub에서 안내하는 기본 URL을 그대로 복붙하면 안 된다.

❌ git@github.com:xxxx/project.git
✅ git@github-personal:xxxx/project.git

github.comgithub-personal로 바꾸는 것만 기억하면 됩니다.


병목 포인트 모음 — 이것만 알면 막힘 없다

상황원인해결
fatal: not in a git directorygit init을 하지 않았거나 다른 경로에서 실행해당 프로젝트 폴더로 이동 후 git init 먼저 실행
push는 됐는데 엉뚱한 계정으로 올라감remote URL이 github.com으로 되어 있음git remote set-url origin git@github-personal:...
SSH 인증 실패공개 키가 GitHub에 등록되지 않았거나 config Host가 틀림ssh -T git@github-personal 로 테스트 후 확인
git config 설정했는데 회사 계정으로 나옴--global 옵션을 쓰거나 git 디렉토리 밖에서 실행프로젝트 폴더 안에서 --global 없이 실행
ls ~/.ssh/ 에 .git 폴더 없음git init을 잘못된 위치에서 실행해당 프로젝트 폴더 안에서 git init 재실행

최종 정리

작업설명
SSH Config Host alias어떤 SSH 키로 인증할지 결정
includeIf “gitdir:”폴더 경로에 따라 commit 계정 자동 전환
git config (로컬)특정 프로젝트에만 계정 지정 (가장 우선순위 높음)
remote URL aliaspush/pull 시 올바른 계정으로 인증되도록 설정

✅ 설정 완료 후 체크리스트

ssh -T git@github-personal → 개인 계정 이름 확인
ssh -T git@github.com → 회사 계정 이름 확인
개인 프로젝트에서 git config user.email → 개인 이메일 확인
회사 프로젝트에서 git config user.email → 회사 이메일 확인


SourceTree 등 GUI 도구 없이 터미널만으로 두 계정을 완전히 분리 운영할 수 있다. 설정은 한 번만 해두면 이후 프로젝트마다 remote URL의 alias만 신경 쓰면 된다.