한 대의 노트북으로 GitHub 개인/회사 계정 완벽 분리하기

Modyhoon·2026년 3월 18일

이 글은 AI로 작성된 글입니다. 임시로 만든 글이며, 확인되지 않은 정보가 있을 수 있습니다.


한 대의 노트북에서 개인 프로젝트와 회사 업무를 병행할 때, 폴더 위치에 따라 커밋 이메일, SSH 인증 키, 의존성 패치 주소가 자동으로 전환되도록 설정하는 환경 구축 가이드입니다.


1. 환경 구성 요약

  • 기본 경로 (~/Dev/): 개인 계정 정보 및 인증 사용
  • 회사 경로 (~/Dev/company/): 회사 계정 정보 및 인증 자동 전환
  • 핵심 기능: Git includeIf, SSH Host 별칭, Git insteadOf 주소 치환

2. SSH 키 생성 (계정별 분리)

각 계정에서 사용할 고유한 SSH 키를 생성합니다. (파일명으로 구분)

# 1. 개인용 키 생성
ssh-keygen -t ed25519 -C "personal@email.com" -f ~/.ssh/id_ed25519_personal -N ""

# 2. 회사용 키 생성
ssh-keygen -t ed25519 -C "work@company.com" -f ~/.ssh/id_ed25519_work -N ""

3. SSH Config 설정 (인증 라우팅)

~/.ssh/config 파일을 수정하여, 접속 시 어떤 키를 사용할지 정의합니다.

# ~/.ssh/config 수정 (없으면 생성)
cat <<EOF >> ~/.ssh/config

# 개인용 (기본 github.com)
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_personal

# 회사용 (별칭 github.com-company)
Host github.com-company
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_work
EOF

4. Git Global 설정 (조건부 분기)

메인 .gitconfig에서 기본 개인 정보를 설정하고, 회사 폴더 진입 시 전용 설정을 불러오도록 연결합니다.

# 1. 전역 개인 계정 설정
git config --global user.name "YourName"
git config --global user.email "personal@email.com"

# 2. ~/Dev/company/ 폴더 하위일 때 회사 전용 설정 로드
git config --global includeIf."gitdir:~/Dev/company/".path "~/.gitconfig-company"

5. 회사 전용 설정 생성 (~/.gitconfig-company)

회사 폴더 내에서만 적용될 커밋 정보와 의존성 주소 치환 규칙을 작성합니다.

# ~/.gitconfig-company 파일 생성
cat <<EOF > ~/.gitconfig-company
[user]
    name = YourName_Work
    email = work@company.com

[url "git@github.com-company:"]
    insteadOf = git@github.com:
EOF

💡 Note: insteadOf 규칙 덕분에 프로젝트 내 여러 의존성 등이 사용하는 git@github.com 주소를 Git이 내부적으로 github.com-company로 바꿔주며, 이는 다시 SSH Config를 타고 회사용 키로 인증됩니다.


6. SSH 키 에이전트 등록 (즉시 적용)

생성한 키를 메모리에 등록하여 즉시 사용 가능하게 합니다.

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519_personal
ssh-add ~/.ssh/id_ed25519_work

7. 최종 검증 및 테스트

① SSH 인증 테스트

각 별칭을 통해 GitHub가 사용자를 정확히 식별하는지 확인합니다.

  • 개인 계정: ssh -T git@github.comHi [PersonalID]!
  • 회사 계정: ssh -T git@github.com-companyHi [CompanyID]!

② 폴더별 설정 확인

회사 폴더(~/Dev/company/) 내부의 저장소로 이동하여 확인합니다.

  • 이메일 확인: git config user.emailwork@company.com 확인
  • 동작 확인: git fetch 시 에러 없이 작동하면 성공

🚀 워크플로우 자동화 원리

  1. 커밋할 때: Git이 폴더 경로를 읽어 자동으로 이메일을 변경함.
  2. 패치/푸시할 때: insteadOf가 주소를 별칭으로 가로챔.
  3. 서버 접속할 때: SSH Config가 별칭을 보고 올바른 회사용 키를 사용함.
profile
어제보다 나은 오늘

0개의 댓글