[Github] MAC | 여러 개의 GitHub 계정 사용하는 방법 (SSH)

아치·2025년 10월 30일

GITHUB

목록 보기
2/2

회사 노트북이나 개인 노트북으로 개발을 하다 보면, 한 기기에서 회사 계정으로 개발할 때도 있고 개인 계정으로 일을 할 때가 있다. 어떻게 하면 한 기기에서 여러 Github 계정을 사용할 수 있을까? 까먹기 쉽고, 틈만 나면 하는 설정이니 기록해 두자

🔐 SSH란

원격 컴퓨터의 접속을 위해 사용되는 프로토콜. 통신 시, 아이디 비밀번호 대신 클라이언트에서 생성된 SSH의 공개키를 서버에 저장한다. 로컬의 비공개키, 서버에 저장된 공개키를 한 쌍인지 확인 후, 안정적인 통신 채널을 이용할 수 있다.

1. 기존 키 제거

rm -rf ~/.ssh/id_rsa ~/.ssh/id_rsa.pub

다중 계정을 설정하기 앞서, 키 이름의 중복 예방을 위하여 기존키를 제거해 주자 ~/.ssh/id_rsa에서 id_ras는 기본 개인 키의 파일명으로 다른 것으로 설정해 두었다면 해당 파일명을 제거한다.

2. SSH-KEY 생성

한 github 계정에 대한 ssh를 생성하기 위해서는 github 이메일을 알아야 한다. 해당 github에 대한 SSH 키를 생성한다.

  • 이메일 확인 방법: github 홈 - 맨 위 오른쪽 프로필 클릭 - Settings 화면에서 Emails 클릭 후 확인

계정의 이메일을 확인 후, 만약 personal@test.com, work@test.com 이 두 계정에 대한 SSH 키를 생성한다면 다음과 같이 생성한다. 필자는 회사 계정용과 개인용을 생성하였으며, 용도에 맞게 필요한만큼 생성하도록 한다. 생성할 파일명은 각자 중복되지 않도록 설정한다.

# ssh 폴더가 있는지 확인
ls -d ~/.ssh

# ssh 폴더가 없다면 생성 (.ssh 폴서 생성 권장)
mkdir ~/.ssh

# 존재한다면 이동
cd ~/.ssh

# ssh 키 생성(올바른 파일명과 Github 계정에 등록된 이메일을 기입)
ssh-keygen -t ed25519 -f ~/.ssh/"file_name" -C "email"

# 예시 - 개인용
ssh-keygen -t ed25519 -f ~/.ssh/id_personal -C personal@test.com

# 예시 - 회사용
ssh-keygen -t ed25519 -f ~/.ssh/id_work -C work@test.com

위 명령어 입력 후 비밀번호를 입력 메시지나 나온다. 별도의 비밀번호를 지정하지 않는다면 Enter 키를 입력하여 넘긴다. 모든 명령어 입력이 끝나면 입력했던 file_name으로 공개키와 비공개키 한 쌍을 이루는 SSH 키가 생성된다.

Enter passphrase for "/Users/admin/.ssh/id_test" (empty for no passphrase): 
Enter same passphrase again: 

2-1. Finder에서 생성된 파일 확인(스킵 가능)

SSH 키가 제대로 생성됐는지 명령어를 통해 확인할 수도 있지만, Finder에서 생성된 파일을 확인하고 싶다면 다음 과정을 참고하자.

Finder → 위 사진과 같이 데스크탑 글씨 옆을 마우스를 가져다대면 파일 아이콘이 생기는데 생기면 우클릭하여 user명 파일을 선택한다.

SSH은 인증 파일이기 때문에 숨김 처리된 폴더이므로 shift + cmd + . 키를 통해 확인할 수 있다.

2-2. Cli로 생성된 파일 확인(스킵 가능)


# 이동
cd ~/.ssh

# 목록 확인
ls

3. ssh-agent 등록

생성했던 SSH-KEY를 컴퓨터에 등록해 보자.

# 컴퓨터에 SSH 키 등록
ssh-add ~/.ssh/"file_name"

# 개인용
ssh-add ~/.ssh/id_personal

# 회사용
ssh-add ~/.ssh/id_work

4. SSH Config, Host alias로 계정 분기

다중 계정을 사용하기 위해서는 Host 지정을 해 주어야 한다.

GitHub의 SSH 주소(git@github.com)는 모든 계정이 공통으로 사용한다. 따라서 한 기기에서 두 개 이상의 GitHub 계정을 쓰면, 어떤 키(=어떤 계정)로 인증해야 하는지 시스템이 구분을 할 수 있도록 계정을 분기해 준다.


# ~/.ssh/config 파일 생성
# 내용을 입력한 뒤 :wq를 입력해 Enter 후 저장
vi ~/.ssh/config


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

Host github-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_work
    IdentitiesOnly yes

5. Repo 경로에 따른 전역 Git 설정 자동화

회사/개인 Repo에서 잘못된 프로필로 커밋을 남기는 실수를 방지하기 위해, 분리되어 사용하는 레포 디렉터리를 기준으로 Git 설정을 자동으로 전환시켜주면 좋다.

# 내용을 입력한 뒤 :wq를 입력해 Enter 후 저장
vi ~/.ssh/config

[user]
    name = Personal_Name
    email = Your_Email

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


# 예시
[user]
	name = personal
	email = personal@test.com

[includeIf "gitdir:/Users/admin/Desktop/work/"]
  path = .gitconfig-work

회사/개인 레포를 오가며 커밋할 때 잘못된 프로필로 커밋이 남는 실수를 방지하기 위해서 레포 경로별로 전역 Git 설정을 자동 전환하도록 설정하면 좋다. includeIf를 이용하면 디렉터리 기준으로 설정이 자동으로 전환되어, 커밋 프로필이 항상 올바르게 유지되고 실수 없이 계정 정체성이 분리된다.

6. Github에 SSH 키 등록

등록을 완료했다면, 각 Github 계정에 공개키(.pub)를 등록해야 한다.

각 계정의 공개키(.pub) 등록

cat ~/.ssh/"file_name"

# 예시 - 개인용
ssh-add ~/.ssh/id_personal.pub

# 예시 - 회사용
ssh-add ~/.ssh/id_work.pub

Github 페이지에서 SSH-KEY를 등록을 위해서 위 명령어를 통해 비공개키인 .pub 확장자의 키를 복사한다.

Github 페이지에서 프로필을 눌러Settings 메뉴를 클릭하여 SSH and GPG keys 에서 New SSH key 클릭하여 추가한다.

7. Repo remote 설정

git remote set-url origin git@"Your_Email":"Personal_Name"/"Repo_name".git

git remote set-url origin git@work.github.com:workkk/test-playground.git

원격 URL의 호스트 별칭이 ~/.ssh/config의 IdentityFile을 트리거해 레포별로 정확한 계정으로 자동 인증되게 만들기 위해서해서 remote 설정을 해 준다.

0개의 댓글