PromleeBlog
sitemap
aboutMe

posting thumbnail
윈도우 터미널에서 두 개의 깃허브 계정 함께 쓰기
Using Multiple GitHub Accounts (Work & Personal) in Windows Terminal

📅

🚀

들어가기 전에 🔗

개발 공부를 하거나 회사에서 프로젝트를 진행하다 보면, 여러 개의 깃허브(GitHub) 계정을 사용해야 하는 경우가 생깁니다.
예를 들어,
회사 업무용 깃허브 계정
개인 프로젝트나 스터디용 깃허브 계정
을 분리해서 사용하고 싶을 때가 대표적이죠.
이런 고민을 하는 분들을 위해 오늘 이 글을 준비했습니다.
이 글에서는 윈도우 환경의 터미널(Git Bash나 WSL의 리눅스 터미널 등)에서 회사 계정과 개인 계정을 모두 설정하고, 각 프로젝트에 맞는 계정으로 손쉽게 작업하는 방법을 차근차근 알려드릴 거예요.
두 개의 다른 깃허브 프로필
두 개의 다른 깃허브 프로필

🚀

왜 여러 깃허브 계정을 분리해서 사용할까요? 🔗

본격적인 설정에 앞서, 왜 우리가 굳이 여러 깃허브 계정을 분리해서 사용하려고 하는지 간단히 이유를 짚어볼게요.
  1. 업무와 개인 생활의 분리
    회사에서 사용하는 코드와 개인적으로 만드는 토이 프로젝트나 오픈소스 기여 활동은 성격이 다릅니다.
    계정을 분리하면 업무 관련 커밋 기록과 개인 활동 기록을 명확히 구분할 수 있어 깔끔합니다.
  2. 보안 및 접근 권한 관리
    회사 프로젝트는 보통 접근 권한이 엄격하게 관리됩니다.
    개인 계정으로 회사 저장소에 접근하거나, 반대로 회사 계정으로 개인 프로젝트에 접근하는 것을 방지하여 보안을 강화할 수 있습니다.
  3. 깃허브 프로필 관리
    깃허브 프로필은 개발자로서 자신을 보여주는 중요한 공간입니다.
    개인 계정 프로필에는 자신의 사이드 프로젝트나 오픈소스 기여 활동을 중심으로 꾸미고, 회사 활동은 회사 계정을 통해 이루어지도록 하여 각 계정의 목적에 맞는 프로필을 유지할 수 있습니다.
이런 이유들로 많은 개발자가 여러 깃허브 계정을 용도에 맞게 나누어 사용하고 있습니다.
지금부터
SSH 방식
HTTPS 방식
두 가지를 나누어 설명드릴게요.

🚀

방법 1: SSH 키를 사용하여 여러 계정 설정하기 (권장) 🔗

SSH(Secure Shell)는 네트워크를 통해 안전하게 통신하기 위한 프로토콜입니다.
깃허브와 통신할 때 SSH 키를 사용하면 매번 아이디와 비밀번호를 입력할 필요 없이 안전하게 인증할 수 있어서 매우 편리합니다.
여러 계정을 사용할 때 가장 깔끔하고 권장되는 방법이기도 합니다.

1단계: 각 계정별 SSH 키 생성하기 🔗

먼저, 회사 계정용 SSH 키와 개인 계정용 SSH 키를 각각 생성해야 합니다.
  1. 터미널 실행
    Git Bash를 사용하거나, WSL을 설치했다면 Ubuntu 등의 리눅스 터미널을 실행합니다.
    이 글에서는 Git Bash를 기준으로 설명하지만, WSL 터미널에서도 명령어는 거의 동일합니다.
    Git Bash
    Git Bash
    참고로 git bash의 붙여넣기 단축키는 Shift + Insert입니다. (일반적인 Ctrl + V는 작동하지 않습니다.)
  2. 기존 SSH 키 확인 (선택 사항)
    이미 생성된 SSH 키가 있는지 확인해봅니다.
    기본 SSH 키는 보통 ~/.ssh 디렉토리에 id_rsa (비밀키), id_rsa.pub (공개키) 같은 이름으로 저장됩니다.
    ls -al ~/.ssh
    만약 id_rsaid_rsa.pub 파일이 이미 있고, 이것이 특정 계정(예: 개인 계정)에 이미 사용 중이라면, 새로운 키는 다른 이름으로 만들어야 합니다.
  3. 회사 계정용 SSH 키 생성
    터미널에 다음 명령어를 입력합니다. your_work_email@example.com 부분은 실제 회사 깃허브 계정에 등록된 이메일 주소로 바꿔주세요.
    -f 옵션 뒤에는 생성될 키 파일의 이름을 지정합니다. 여기서는 id_rsa_work라고 하겠습니다.
    ssh-keygen -t rsa -b 4096 -C "your_work_email@example.com" -f ~/.ssh/id_rsa_work
    • -t rsa: RSA 암호화 방식을 사용합니다. (요즘은 ed25519 방식도 많이 사용합니다: ssh-keygen -t ed25519 -C "your_email@example.com")
    • -b 4096: 키의 길이를 4096비트로 설정합니다. (RSA의 경우, ed25519는 불필요)
    • -C "...": 코멘트 부분으로, 보통 이메일 주소를 넣어 식별하기 쉽게 합니다.
    • -f ~/.ssh/id_rsa_work: 키 파일을 저장할 경로와 파일 이름을 지정합니다. ~는 홈 디렉토리를 의미합니다.
    명령을 실행하면 다음과 같은 질문이 나옵니다.
    • Enter passphrase (empty for no passphrase):
      SSH 키에 대한 추가 암호를 설정하는 부분입니다. 설정하면 SSH 키를 사용할 때마다 이 암호를 입력해야 해서 보안성은 높아지지만, 조금 번거로울 수 있습니다.
      필요에 따라 설정하거나, 그냥 Enter를 눌러 암호 없이 진행할 수 있습니다. (여기서는 암호 없이 진행하는 것으로 가정합니다.)
    • Enter same passphrase again:
      암호를 설정했다면 다시 한번 입력합니다.
    성공적으로 생성되면 ~/.ssh/id_rsa_work (비밀키)와 ~/.ssh/id_rsa_work.pub (공개키) 파일 두 개가 만들어집니다.
    ssh-keygen 성공
    ssh-keygen 성공
  4. 개인 계정용 SSH 키 생성
    마찬가지로 개인 계정용 SSH 키도 생성합니다. 이번에는 파일 이름을 id_rsa_personal로 하겠습니다.
    your_personal_email@example.com 부분은 실제 개인 깃허브 계정 이메일로 바꿔주세요.
    ssh-keygen -t rsa -b 4096 -C "your_personal_email@example.com" -f ~/.ssh/id_rsa_personal
    회사용 키 생성 때와 마찬가지로 passphrase를 설정하거나 Enter를 눌러 넘어갑니다.
    이제 ~/.ssh/id_rsa_personal~/.ssh/id_rsa_personal.pub 파일이 추가로 생성되었을 겁니다.

2단계: 생성된 SSH 공개키를 각 깃허브 계정에 등록하기 🔗

이제 방금 만든 SSH
공개키
(id_rsa_work.pub, id_rsa_personal.pub)의 내용을 복사해서 각 깃허브 계정에 등록해야 합니다.
  1. 회사 계정용 공개키 내용 복사
    터미널에서 다음 명령어로 id_rsa_work.pub 파일의 내용을 확인하고 전체를 복사합니다.
    (Git Bash에서는 clip < ~/.ssh/id_rsa_work.pub 명령어를 사용하면 바로 클립보드에 복사됩니다.)
    터미널
    cat ~/.ssh/id_rsa_work.pub
    Git Bash(바로 클립보드에 복사)
    clip < ~/.ssh/id_rsa_work.pub
    출력되는 ssh-rsa AAAA... your_work_email@example.com 형태의 텍스트 전체를 선택하여 복사합니다.
  2. 회사 깃허브 계정에 공개키 등록
    웹 브라우저에서
    회사 깃허브 계정
    으로 로그인합니다.
    오른쪽 위 프로필 아이콘 클릭 > Settings > 왼쪽 메뉴에서 SSH and GPG keys 선택.
    'New SSH key' 또는 'Add SSH key' 버튼 클릭.
    Settings 화면
    Settings 화면
    'Title'에는 식별하기 쉬운 이름(예: 'My Work Laptop - Windows')을 입력합니다.
    'Key' 입력란에 방금 복사한 id_rsa_work.pub의 전체 내용을 붙여넣습니다.
    'Add SSH key' 버튼을 클릭하여 저장합니다.
    SSH key 등록 완료
    SSH key 등록 완료
  3. 개인 계정용 공개키 내용 복사 및 등록
    위와 동일한 방법으로, 이번에는 id_rsa_personal.pub 파일의 내용을 복사합니다.
    터미널
    cat ~/.ssh/id_rsa_personal.pub
    Git Bash(바로 클립보드에 복사)
    clip < ~/.ssh/id_rsa_personal.pub
    그리고
    개인 깃허브 계정
    으로 로그인하여 (필요하면 회사 계정 로그아웃 후 개인 계정으로 다시 로그인) 동일하게 SSH 키를 등록합니다.
    'Title'은 'My Personal Laptop - Windows' 처럼 구분되게 적어주면 좋겠죠?

3단계: SSH 설정 파일 수정하기 (config) 🔗

이제 각 깃허브 호스트에 어떤 SSH 키를 사용해야 할지 알려주는 설정 파일을 만들어야 합니다.
  1. SSH 설정 파일 열기 (또는 생성하기)
    ~/.ssh/config 파일을 텍스트 편집기로 엽니다. 파일이 없다면 새로 만들면 됩니다.
    터미널에서 nano ~/.ssh/configvim ~/.ssh/config를 사용하거나, 윈도우 탐색기에서 C:\Users\사용자이름\.ssh 폴더로 이동하여 config 파일을 직접 만들고 메모장 등으로 열 수 있습니다. (Git Bash에서는 notepad ~/.ssh/config도 가능)
  2. 설정 내용 추가
    config 파일에 아래와 같이 내용을 추가하고 저장합니다.
    # Work GitHub account
    Host github.com-work
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_rsa_work
        IdentitiesOnly yes
    
    # Personal GitHub account
    Host github.com-personal
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_rsa_personal
        IdentitiesOnly yes
    
    # (선택 사항) 기본 GitHub 계정 설정 (둘 중 하나를 기본으로 사용하고 싶을 때)
    # 예를 들어 개인 계정을 기본으로 사용하고 싶다면 아래처럼 추가
    # Host github.com
    #     HostName github.com
    #     User git
    #     IdentityFile ~/.ssh/id_rsa_personal # 또는 id_rsa (기존 기본 키가 있다면)
    #     IdentitiesOnly yes
    
    설정 설명
    • Host github.com-work
      우리가 앞으로 사용할 "별명" 같은 호스트 이름입니다. 실제 github.com과는 다른 이름을 지정하여 구분합니다.
    • HostName github.com
      실제 연결할 깃허브 서버의 주소입니다.
    • User git
      깃허브에 SSH로 접속할 때 사용하는 기본 사용자 이름입니다. (변경하지 마세요)
    • IdentityFile ~/.ssh/id_rsa_work
      이 호스트(github.com-work)에 접속할 때 사용할 SSH 비밀키 파일의 경로입니다.
    • IdentitiesOnly yes
      지정된 IdentityFile만 사용하여 인증을 시도하도록 합니다. (다른 키들을 순차적으로 시도하지 않도록 하여 명확성을 높입니다.)

4단계: SSH Agent에 키 등록하기 (선택 사항이지만 편리함) 🔗

SSH 키에 암호(passphrase)를 설정했다면, 매번 키를 사용할 때마다 암호를 입력해야 합니다.
SSH Agent는 이 암호를 한 번만 입력하면 세션 동안 기억해주는 편리한 도구입니다.
👨‍💻
암호를 설정하지 않았다면 이 단계는 건너뛰어도 됩니다.
  1. SSH Agent 실행 확인 및 시작
    Git Bash나 WSL 터미널에서 다음 명령어를 실행하여 SSH Agent가 실행 중인지 확인하고, 아니라면 시작합니다.
    eval $(ssh-agent -s)
    "Agent pid XXXX" 같은 메시지가 나오면 성공입니다.
  2. 생성한 SSH 키들을 Agent에 추가
    ssh-add ~/.ssh/id_rsa_work
    ssh-add ~/.ssh/id_rsa_personal
    각 키에 암호를 설정했다면, 여기서 암호를 입력하라는 메시지가 나옵니다. 한번 입력하면 다음부터는 묻지 않습니다. (터미널 세션이 유지되는 동안)
    윈도우를 재부팅하면 SSH Agent도 다시 시작해야 하고 키도 다시 추가해야 할 수 있습니다.
    이를 자동화하는 방법도 있지만, 이 글에서는 기본적인 내용만 다룹니다.

5단계: 각 계정별로 저장소 사용하기 🔗

이제 모든 설정이 끝났습니다! 각 계정에 맞는 저장소를 클론(clone)하거나, 기존 저장소의 원격(remote) URL을 변경하여 사용할 수 있습니다.
클론을 할 때에는 기본적으로 SSH URL을 사용합니다.
SSH url
SSH url
이 SSH 설정 방법은 한번 해두면 매우 편리하고 안전하게 여러 계정을 관리할 수 있습니다.

🚀

방법 2: HTTPS 방식으로 여러 계정 사용하기 🔗

HTTPS 방식은 SSH보다 설정이 간단할 수 있지만, 여러 계정을 전환하는 것이 조금 더 번거로울 수 있습니다.
윈도우에서는 Git Credential Manager가 보통 Git 설치 시 함께 설치되어 HTTPS 인증 정보를 관리해줍니다.

윈도우 자격 증명 관리자(Credential Manager) 활용 🔗

윈도우에서 Git을 설치하면 보통 Git Credential Manager for Windows(GCM)가 함께 설치됩니다.
이는 깃허브 같은 서비스에 HTTPS로 처음 로그인할 때 사용자 이름과 비밀번호(또는 PAT)를 저장해두고, 다음번 접속부터는 자동으로 인증해주는 역할을 합니다.

문제는 GCM이 기본적으로
하나의 github.com 호스트에 대해 하나의 자격 증명만 저장
한다는 점입니다.
그래서 회사 계정으로 로그인해두면 개인 계정 저장소에 접근하려 할 때 회사 계정으로 시도하게 되고, 반대의 경우도 마찬가지입니다.
  1. 기존 자격 증명 삭제
    다른 계정을 사용해야 할 때, 윈도우 '자격 증명 관리자'에서 기존 github.com 관련 자격 증명을 수동으로 삭제해야 합니다.
    • 윈도우 검색창에 '자격 증명 관리자'를 입력하여 실행합니다.
    • 'Windows 자격 증명'을 선택합니다.
    • '일반 자격 증명' 목록에서 git:https://github.com 와 유사한 항목을 찾습니다.
    • 해당 항목을 확장하고 '제거'를 클릭합니다.
    자격 증명 삭제
    자격 증명 삭제
  2. 새로운 계정으로 인증
    자격 증명을 삭제한 후, 터미널에서 새로운 계정(예: 개인 계정)으로 접근해야 하는 저장소에 대해 git pull이나 git push 같은 명령을 실행합니다.
    그러면 GCM이 사용자 이름과 비밀번호(또는 PAT)를 묻는 창을 띄웁니다. 여기에 새로운 계정 정보를 입력하면, 이 정보가 다시 자격 증명 관리자에 저장됩니다.
이 방법은 계정을 바꿀 때마다 자격 증명을 수동으로 삭제해야 해서 번거롭습니다.
그래서 HTTPS 방식에서는 각 계정별로
PAT(Personal Access Token)
를 발급받아 사용하는 것이 더 안전하고, 경우에 따라 관리가 용이할 수 있습니다.

PAT 사용(Personal Access Token) 🔗

PAT는 비밀번호 대신 사용할 수 있는 토큰으로, 각 토큰마다 특정 권한(scope)을 부여할 수 있어 보안에 더 좋습니다.
각 깃허브 계정(회사용, 개인용)에서 필요한 권한을 가진 PAT를 발급받습니다.
PAT를 발급받는 방법은 깃허브 Settings > Developer settings > Personal access tokens > Tokens (classic) 또는 Fine-grained tokens 에서 할 수 있습니다.
(Fine-grained tokens가 더 세밀한 권한 설정이 가능하여 권장됩니다.)

HTTPS URL로 Git 작업을 할 때, 비밀번호를 묻는 프롬프트가 나타나면 비밀번호 대신 발급받은 PAT를 입력합니다.
GCM은 이 PAT를 저장해두고 다음번 접속 시 사용합니다.
여전히 GCM은 하나의 github.com에 대해 하나의 PAT만 기억하므로, 계정을 전환하려면 위에서 설명한 자격 증명 삭제 과정을 거쳐야 합니다.

🚀

각 프로젝트별 Git 사용자 정보(user.name, user.email) 설정 🔗

깃허브 계정 인증과는 별개로, Git 커밋에는 작성자 정보(이름과 이메일 주소)가 기록됩니다.
여러 계정을 사용할 때는 각 프로젝트가 올바른 사용자 정보로 커밋되도록 설정하는 것이 매우 중요합니다.
🖐️
프로젝트를 시작하거나 클론한 후에는 반드시 해당 프로젝트에 맞는 user.name과 user.email이 설정되어 있는지 확인하는 습관을 들이세요!
git config user.namegit config user.email 명령으로 현재 설정을 확인할 수 있습니다.

🚀

주의사항 및 추가 팁 🔗


🚀

결론 🔗

오늘은 윈도우 터미널 환경에서 회사용 깃허브 계정과 개인용 깃허브 계정을 함께 사용하는 방법에 대해 알아보았습니다.
크게 두 가지 방법,
SSH 키를 활용하는 방법
HTTPS 방식을 사용하는 방법
을 살펴보았습니다.
어떤 방식을 사용하든, 각 프로젝트에 맞는
user.name과 user.email을 정확히 설정
하는 것이 매우 중요합니다.
실수로 개인 프로젝트에 회사 계정으로 커밋하거나, 반대의 경우가 생기지 않도록 항상 주의해야 합니다.

참고 🔗