콘텐츠로 바로가기

WooGong's Blog

The blog of WooGong

  • Post
  • About

[태그:] GitHub

[GIT] Using multiple Github accounts on one computer (in Windows)

윈도우 환경에서 여러 GitHub 계정을 효율적으로 관리하는 방법을 다룹니다. SSH 키 생성 및 등록부터 Git 저장소 클론, 로컬 설정, 그리고 흔히 발생하는 오류 해결까지 단계별로 안내하여 복잡한 다중 계정 설정을 간편하게 만들어줍니다.

[GIT] Using multiple Github accounts on one computer (in Windows)

 

Windows 에서 여러 GitHub 계정을 사용하는 방법

개발자라면 여러 GitHub 계정을 사용해야 할 때가 종종 있습니다. 개인 프로젝트를 위한 계정과 회사 업무를 위한 계정을 따로 관리하거나, 오픈소스 기여를 위한 또 다른 계정이 있을 수도 있죠. 하지만 Windows 환경에서 여러 GitHub 계정을 오가는 것은 생각보다 번거롭게 느껴질 수 있습니다. 매번 git config 명령어를 수정하거나 SSH 키를 바꿔주는 것도 여간 귀찮은 일이 아니죠.

오늘은 Windows에서 Git Bash와 Command Prompt (CMD)를 이용해 여러 GitHub 계정을 쉽고 효율적으로 관리하는 방법을 자세히 알아보겠습니다. 계정 등록 과정부터 실제 사용 테스트, 그리고 발생할 수 있는 일반적인 오류 해결 방법까지 함께 살펴보겠습니다.


1단계: SSH 키 생성 및 등록

GitHub는 SSH(Secure Shell)를 이용한 안전한 통신을 권장합니다. 각 GitHub 계정마다 고유한 SSH 키를 생성하고 등록하면, 비밀번호를 매번 입력할 필요 없이 편리하게 인증할 수 있습니다.

1-1. SSH 폴더 생성

SSH 키는 일반적으로 사용자 홈 디렉토리(~) 아래의 .ssh 폴더에 저장됩니다. 이 폴더가 없다면, Git Bash를 열어 다음 명령어로 생성해 주세요.

Bash

 
mkdir -p ~/.ssh

-p 옵션은 부모 디렉토리가 없으면 함께 생성해 주며, 이미 폴더가 존재해도 오류를 발생시키지 않습니다.

(이미지: Git Bash에서 mkdir -p ~/.ssh 명령어를 실행하여 SSH 설정 파일을 위한 디렉토리를 생성하는 화면을 보여줍니다.)

1-2. SSH 키 생성

가장 먼저 할 일은 각 GitHub 계정별로 SSH 키를 생성하는 것입니다. Git Bash를 열고 다음 명령어를 입력하세요.

Bash

 
# ssh-keygen -t rsa -b 4096 -C "your_email@google.com" -f ~/.ssh/id_rsa_yourgoogleaccountname

ssh-keygen -t rsa -b 4096 -C "woogongTest@google.com" -f ~/.ssh/id_rsa_woogongTest
  • -t rsa: RSA 암호화 방식을 사용합니다.
  • -b 4096: 키의 비트 길이를 4096으로 설정하여 보안을 강화합니다.
  • -C "your_email@google.com": 주석을 추가합니다. 해당 SSH 키가 어떤 계정의 것인지 구분하는 데 도움이 됩니다.
  • -f ~/.ssh/id_rsa_yourgoogleaccountname: 키 파일이 저장될 경로와 파일명을 지정합니다. 반드시 계정별로 다른 파일명을 사용해야 합니다. (예: id_rsa_google, id_rsa_yourgoogleaccountname,  id_rsa_apple)

명령어를 실행하면 암호(passphrase)를 입력하라는 메시지가 나옵니다. 보안을 위해 입력하는 것을 권장하지만, 매번 입력하기 번거롭다면 비워둬도 무방합니다. (엔터 두 번)위 화면은 Git Bash에서 ssh-keygen 명령어를 실행하여 SSH 키를 생성하는 화면. 파일 경로와 이메일 주소를 입력하고 암호를 설정하는 과정을 보여줍니다.

이 과정을 거치면 아래와 같이 파일이 생성됩니다.

이 과정을 각 GitHub 계정마다 반복하여 필요한 만큼의 SSH 키를 생성합니다. 예를 들어, 개인 계정과 회사 계정을 사용한다면 id_rsa_personal과 id_rsa_work 두 개의 키 파일을 생성해야 합니다.

1-3. Windows SSH-Agent 서비스 확인 (선택 사항)

Git Bash에서 SSH Agent를 사용하는 대신, Windows 자체의 SSH-Agent 서비스를 사용할 수도 있습니다. 일반적으로 Git Bash에서 ssh-agent 명령어를 실행하여 Agent를 시작하는 것이 더 유연하지만, 간혹 시스템 전반적으로 이 서비스를 사용하고 있다면 충돌을 피하기 위해 확인해 볼 필요가 있습니다.

PowerShell을 관리자 권한으로 열고 다음 명령어를 입력하여 확인합니다.

PowerShell

 
Get-Service ssh-agent | Select-Object Name, Status, StartType

혹은 CMD에서:

DOS

 
sc qc ssh-agent

  • Running 상태이고 StartType이 **Automatic**으로 되어 있다면, Windows 서비스로 SSH 에이전트가 활성화되어 있는 것입니다. 이 경우, Git Bash에서 eval "$(ssh-agent -s)" 명령어를 실행하면 충돌이 발생하거나 예상치 못한 동작을 할 수 있습니다. 이 가이드에서는 Git Bash의 SSH 에이전트(eval "$(ssh-agent -s)")를 사용하는 것을 전제로 하므로, Windows ssh-agent 서비스가 실행 중이라면 잠시 중지하거나 Disabled로 설정하는 것을 고려해 보세요. (나중에 다시 Automatic으로 변경 가능합니다.)
    • 서비스 중지: Stop-Service ssh-agent (PowerShell) 또는 net stop ssh-agent (CMD)
    • 시작 유형 비활성화: Set-Service -Name ssh-agent -StartupType Disabled (PowerShell)
  • Stopped 상태이거나 아예 보이지 않는다면, Git Bash의 SSH 에이전트를 사용해도 무방합니다.

대부분의 경우 Git Bash에서 SSH 에이전트를 직접 실행하는 것이 편리합니다. 이 가이드도 Git Bash 에이전트 사용을 기준으로 설명합니다.

1-4. SSH 에이전트 설정

SSH 에이전트는 SSH 키를 메모리에 로드하여 사용할 때마다 암호를 입력할 필요 없이 자동으로 인증해 주는 역할을 합니다.

SSH 에이전트 시작

Bash

 
eval "$(ssh-agent -s)"

생성한 SSH 키 추가

Bash

 
ssh-add ~/.ssh/id_rsa_woogongTest
ssh-add ~/.ssh/id_rsa_personal
ssh-add ~/.ssh/id_rsa_work
# 필요한 만큼 각 계정의 키 파일 경로를 추가합니다.

1-5. SSH 설정 파일 (config) 생성 및 편집

~/.ssh 디렉토리에 config 파일을 생성하여 각 GitHub 계정에 대한 설정을 정의합니다. 이 파일은 Git이 어떤 호스트에 어떤 SSH 키를 사용할지 알려주는 역할을 합니다.

Bash

 
# ~/.ssh/config 파일 생성 또는 편집
Host github.com-woogongTest
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_woogongTest
    IdentitiesOnly yes

Host github.com-personal
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_personal
    IdentitiesOnly yes

Host github.com-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_work
    IdentitiesOnly yes
  • Host: Git이 사용할 별칭입니다. 실제 github.com 대신 이 별칭을 사용하여 계정을 구분합니다. 이 별칭이 가장 중요합니다! (예: github.com-personal,  github.com-work, github.com-work)
  • HostName: 실제 GitHub 호스트 이름 (github.com)입니다.
  • User: Git 사용자입니다. 항상 git으로 설정합니다.
  • IdentityFile: 해당 Host에 사용할 SSH 키 파일의 경로입니다.
  • IdentitiesOnly yes: 이 호스트에 대해 지정된 IdentityFile만 사용하도록 강제합니다.

1-6. GitHub에 SSH 공개 키 등록

이제 생성된 SSH 공개 키(.pub 확장자 파일)를 각 GitHub 계정에 등록해야 합니다.

  1. GitHub 웹사이트에 로그인합니다.
  2. Settings > SSH and GPG keys로 이동합니다.
  3. New SSH key 버튼을 클릭합니다.
  4. Title에 키의 이름을 지정합니다 (예: My Personal Laptop 또는 Work PC).
  5. Key 필드에 .pub 파일의 내용을 복사하여 붙여넣습니다. .pub 파일은 텍스트 편집기(메모장, VS Code 등)로 열 수 있습니다. (예: ~/.ssh/id_rsa_woogongTest.pub 파일 내용)
Bash

 
cat ~/.ssh/id_rsa_woogongTest.pub


Tip : 오류가 날수 있기 때문에 git bash 에서 입력하여 맨 마지막줄까지 Copy 하십시오.

  1. Add SSH key를 클릭합니다.

이 과정을 각 GitHub 계정마다 반복하여 해당 계정의 공개 키를 등록합니다.


2단계: Git 저장소 클론 및 계정 설정

이제 각 GitHub 계정에 맞는 원격 저장소를 클론하고, 해당 저장소에 맞는 사용자 정보를 설정할 차례입니다.

2-1. 저장소 클론 (Clone)

기존 저장소를 클론할 때는 앞서 config 파일에서 설정한 별칭을 사용합니다.

Bash

 
# 개인 계정의 저장소 클론
git clone git@github.com-personal:your-username/your-personal-repo.git

# 회사 계정의 저장소 클론
git clone git@github.com-work:your-company-username/your-work-repo.git

중요: 여기서 github.com-personal 또는 github.com-work는 실제 GitHub 도메인이 아닌, ~/.ssh/config 파일에 설정한 Host 별칭입니다. Git은 이 별칭을 보고 해당 별칭에 연결된 SSH 키를 사용하게 됩니다.

2-2. 로컬 Git 설정 (Local Git Config)

각 클론한 저장소 디렉토리로 이동한 후, 해당 저장소에 맞는 사용자 이름과 이메일 주소를 설정해야 합니다. 이는 현재 저장소에만 적용되는 설정이므로, 다른 저장소에는 영향을 주지 않습니다.

Bash

 
cd your-personal-repo
git config user.name "Your Personal Name"
git config user.email "your_personal_email@example.com"
cd ../your-work-repo
git config user.name "Your Work Name"
git config user.email "your_work_email@example.com"

cd woogongTest-repo
git config user.name "WooGongTest"
git config user.email "woogongTest@google.com"

이제 이 저장소에서 커밋을 하면, 설정된 사용자 이름과 이메일 주소로 기록됩니다.


3단계: 테스트 및 오류 해결

이제 모든 설정이 완료되었으니, 실제로 잘 작동하는지 테스트해 볼 차례입니다.

3-1. SSH 연결 테스트

Git Bash 또는 CMD에서 다음 명령어를 사용하여 SSH 연결을 테스트할 수 있습니다.

Bash

 
ssh -T git@github.com-woogongTest #ssh -T git@github.com-personal
# ssh -T git@github.com-work

성공적으로 연결되면 다음과 유사한 메시지가 나타납니다.

Hi your-username! You've successfully authenticated, but GitHub does not provide shell access.

3-2. Git 푸시(Push) 테스트

각 저장소에서 간단한 변경 사항을 커밋하고 푸시하여 제대로 작동하는지 확인합니다.

  1. 해당 저장소 디렉토리로 이동합니다.
  2. test.txt와 같은 간단한 파일을 생성하고 내용을 추가합니다.
  3. 커밋합니다: git add . && git commit -m "Test commit"
  4. 푸시합니다: git push origin main (또는 master)

각 계정의 GitHub 저장소에서 해당 커밋이 올바른 사용자로 표시되는지 확인합니다.

3-3. 발생 가능한 오류 및 해결 방법

오류 1: Permissions denied (publickey)

  • 원인: SSH 키가 제대로 로드되지 않았거나, GitHub에 공개 키가 등록되지 않았거나, config 파일 설정이 잘못되었을 수 있습니다.
  • 해결 방법:
    • ~/.ssh/config 파일의 IdentityFile 경로가 올바른지 확인하세요.
    • ssh-agent가 실행 중인지 확인하고, ssh-add로 모든 SSH 키를 추가했는지 다시 확인하세요.
    • GitHub 계정 설정에서 해당 공개 키가 올바르게 등록되어 있는지 다시 확인하세요. .pub 파일의 내용을 정확히 복사했는지도 중요합니다.
    • 키 파일 권한이 너무 개방적으로 설정되어 있을 경우 문제가 발생할 수 있습니다. (chmod 600 ~/.ssh/id_rsa_youraccountname 또는 윈도우 탐색기에서 파일 속성 > 보안 탭에서 권한 설정)

오류 2: Could not resolve hostname github.com-personal: No such host is known.

  • 원인: ~/.ssh/config 파일에 github.com-personal과 같은 Host 별칭이 없거나 오타가 있을 경우 발생합니다.
  • 해결 방법:
    • ~/.ssh/config 파일을 열어 Host 별칭이 클론하려는 URL과 일치하는지, 오타는 없는지 꼼꼼히 확인하세요.

오류 3: 잘못된 사용자 이름/이메일로 커밋됨

  • 원인: 해당 저장소 디렉토리에서 git config user.name 및 git config user.email 설정이 올바르게 되어 있지 않거나, 전역 설정이 우선하고 있을 수 있습니다.
  • 해결 방법:
    • 해당 저장소 디렉토리에서 git config --list 명령어를 실행하여 user.name과 user.email이 올바르게 설정되어 있는지 확인하세요.
    • 만약 전역 설정이 우선하고 있다면 (git config --global user.name 등으로 설정된 경우), 반드시 각 저장소에서 로컬 설정을 해주세요. 로컬 설정은 전역 설정을 덮어씁니다.

마무리하며

이제 윈도우에서 여러 GitHub 계정을 손쉽게 오가며 사용할 수 있게 되셨을 겁니다. SSH 키를 이용한 설정은 초기에는 다소 복잡하게 느껴질 수 있지만, 한 번만 제대로 설정해두면 이후 작업 효율을 크게 높여줄 것입니다.

이 방법을 통해 개인 프로젝트와 업무 프로젝트를 명확하게 분리하고, 더 깔끔하고 효율적인 Git 워크플로우를 구축하시길 바랍니다! 궁금한 점이 있다면 언제든지 댓글로 문의해주세요.

 

Happy GoSu ~

WooGong ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

 

글쓴이 WooGong작성일자 2025년 06월 25일2025년 06월 25일카테고리 Development태그 SSH 키, 버전 관리, multi account, GitHub, windows, Git, SSH, 멀티 계정, 윈도우, 개발 환경, Git Bash, Command Prompt[GIT] Using multiple Github accounts on one computer (in Windows)에 댓글 남기기
WooGong Avatar

Post

  • Notice (1)
  • Development (15)
  • Life (0)
  • ETC (1)

Recent

  • [GIT] Using multiple Github accounts on one computer (in Windows)
  • [PYTHON] requirements.txt 파일 쉽게 만드는 방법: 설치된 패키지 목록 저장
  • [ASP.NET CORE] 무료 템플릿으로 만드는 ASP.NET Core MVC WebSite #5: Layout
  • [ASP.NET CORE] 무료 템플릿으로 만드는 ASP.NET Core MVC WebSite #4: View와 Controller 구성
  • [ASP.NET CORE] 무료 템플릿으로 만드는 ASP.NET Core MVC WebSite #3: HTML 구조 분석과 MVC 디자인 준비

Comments

보여줄 댓글 없음.
2025 6월
일 월 화 수 목 금 토
1234567
891011121314
15161718192021
22232425262728
2930  
« 5월    
CC-BY-NC-ND

This content is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International license.

  • Post
  • About
WooGong's Blog 개인정보 처리방침 Proudly powered by WordPress