본문 바로가기
IT 지식

맥북에서 GitHub 다중 계정 관리하기: SSH Config로 403 에러 완벽 해결

by 기계공학 주인장 2025. 9. 27.
반응형

개발자라면 누구나 한 번쯤 겪어봤을 상황입니다. 회사 계정과 개인 계정을 번갈아 사용하다가 갑자기 Git push가 막히는 경우 말이죠.

특히 맥북에서는 키체인에 이전 계정 정보가 저장되어 있어 더욱 골치 아픈 문제가 됩니다.

 

오늘은 이런 문제를 기존 설정은 그대로 두고 SSH Config만으로 깔끔하게 해결하는 방법을 공유하겠습니다.


🚨 문제 상황

전형적인 에러 메시지들

fatal: unable to access 'https://github.com/{id}/new_feature_android.git/': The requested URL returned error: 403 remote: Permission to {id}/new_feature_android.git denied to mmol93. fatal: unable to access

'https://github.com/{id}/new_feature_android.git/': The requested URL returned error: 403
 

왜 이런 일이 발생할까?

  • 맥 키체인에 이전 계정 정보 저장: mmol93 계정이 자동으로 사용됨
  • GitHub의 권한 시스템: 저장소 접근 권한이 없는 계정으로 인증 시도
  • 자격 증명 충돌: 여러 GitHub 계정 사용 시 올바른 계정 선택 실패

SSH Config를 활용한 해결책

SSH Config 방식은 기존 키체인은 그대로 두고 각 저장소별로 다른 SSH 키를 사용할 수 있는 해결책입니다.

SSH 인증의 장점

  • 토큰 관리 불필요: 한 번 설정하면 영구 사용
  • 더 강한 보안: 공개키 암호화 기반
  • 자동 인증: SSH Agent가 자동으로 키 관리
  • 계정 분리: 저장소별로 자동으로 올바른 계정 선택

🛠️ 단계별 구현 가이드

Step 1: SSH 키 생성

 
# 새로운 SSH 키 생성 
ssh-keygen -t ed25519 -C "your-email@example.com" -f ~/.ssh/"키 이름"
 
 
예:
ssh-keygen -t ed25519 -C "your-email@example.com" -f ~/.ssh/id_ed25519_personal
 
 

파라미터 설명:

  • -t ed25519: 최신 보안 표준 암호화 방식
  • -C "이메일": 새로운 GitHub 계정 이메일
  • -f ~/.ssh/id_ed25519_personal: 의미있는 파일명 지정

프롬프트 응답:

# 시스템이 묻는 질문들 (순서대로 나타남)
Enter file in which to save the key: → 엔터 (기본값 사용)
Enter passphrase: → 비밀번호 입력 또는 엔터 (비워두기)
Enter same passphrase again: → 위와 동일하게 입력

# 완료 메시지
Your identification has been saved in /Users/mac/.ssh/id_ed25519_personal
Your public key has been saved in /Users/mac/.ssh/id_ed25519_personal.pub

 

 


Step 2: GitHub에 공개키 등록

 
# 생성된 공개키 출력 
cat ~/.ssh/id_ed25519_personal.pub

 

 
 

GitHub 등록 과정:

  1. GitHub → SettingsSSH and GPG keys
  2. New SSH key 버튼 클릭
  3. Title: MacBook Personal Key
  4. Key: 출력된 공개키 전체 내용 붙여넣기

Step 3: SSH Config 설정

 
# SSH Config 파일 생성/편집 
nano ~/.ssh/config
 
 
 

설정 내용:

 

# ~/.ssh/config 파일 내용
Host github-personal
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_personal
    IdentitiesOnly yes
    UseKeychain yes
    AddKeysToAgent yes

Host github-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_work
    IdentitiesOnly yes
    UseKeychain yes
    AddKeysToAgent yes

 

 

핵심 옵션 설명:

  • IdentitiesOnly yes: 다른 키 간섭 방지 (필수!)
  • UseKeychain yes: 맥 키체인 연동
  • AddKeysToAgent yes: SSH Agent 자동 추가

 

주의 사항:

  • SSH Config 파일을 편집할 때 반드시 들여쓰기를 해야합니다.

Step 4: SSH Agent에 키 추가

 
# SSH Agent에 키 추가 
ssh-add --apple-use-keychain ~/.ssh/id_ed25519_personal

Step 5: 연결 테스트

 
 
# SSH 연결 테스트 
ssh -T git@github-personal
 

 

성공 시 출력:

Hi [GitHub사용자명]! You've successfully authenticated, but GitHub does not provide shell access.

 

 


Step 6: Git Remote URL 변경

 
# 현재 설정 확인 
git remote -v 

# SSH Config 방식으로 변경 
git remote set-url origin git@github-personal:{git_name}/{repository}
 
 

URL 변화:

  • Before: git@github.com:{git_name}/{repository}
  • After: git@github-personal:{git_name}/{repository}

 

Step 7: 최종 테스트

git add . git commit -m "SSH Config 설정 테스트" git push origin main
 

 

이 때 정상적으로 push된다면 문제 없이 셋업된거로 볼 수 있습니다.

 


결론

SSH Config 방식은 초기 설정이 다소 복잡하지만, 한 번 구성하면 영구적으로 사용할 수 있는 완벽한 해결책입니다.

핵심 장점

  • 기존 환경 보존: 다른 계정 설정에 영향 없음
  • 자동 계정 분리: 저장소별로 자동으로 올바른 계정 사용
  • 보안성 향상: 공개키 암호화 기반
  • 편의성 극대화: 한 번 설정 후 자동 관리

 

반응형


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


댓글