Skip to main content

One post tagged with "SSH"

View All Tags

GitHub 계정 여러개 사용해보기 (with SSH)

· 5 min read
2nan
Backend Engineer, Outlier

개요

하나의 PC에서 여러개의 GitHub 계정을 사용해야 할 때가 있습니다. 회사의 GitHub 계정이나 교육용 GitHub 계정을 사용하면서, 개인 GitHub 계정을 사용해야 할 때가 있습니다.

SSH 설정을 통해 간편하게 여러개의 GitHub 계정을 사용하는 방법에 대해 설명합니다.

info

사용하려는 환경에 Git이 설치되어 있다고 가정하고 진행됩니다.

GitHub SSH 연동하기

SSH 키 생성하기

ssh-keygen 명령어를 통해 SSH 키 파일을 생성합니다. 이때 파일명은 추후 GitHub 계정별로 식별하기 쉽도록 다음과 같은 규칙으로 생성하면 좋습니다.

# Windows의 경우 C:/Users/{USER}/.ssh 디렉토리에서 진행
# Mac의 경우 /Users/{USER}/.ssh 디렉토리에서 진행

# 회사 GitHub 계정
$ ssh-keygen -t rsa -C "2nan@company.co.kr" -f "id_rsa_company"

# 개인 GitHub 계정
$ ssh-keygen -t rsa -C "developer.2nan@gmail.com" -f "id_rsa_dev"

image

명령어를 사용한 이후에 디렉토리를 확인해보면 파일이 2개가 생성된 것을 확인이 가능합니다.

GitHub에 SSH 공개키 등록하기

생성한 2개의 파일중 .pub 확장자를 가지고 있는 파일이 공개키 파일입니다. 이 공개키를 GitHub에 등록하는 과정입니다.

image

GitHub 페이지에서 우측 상단의 프로필 이미지를 누르고 Settings 페이지에 접근합니다.

image

SSH and GPG keys 탭에 접근해서 New SSH Key 버튼을 누릅니다.

image

어떤 키를 등록하였는지 Title을 작성하고, .pub 파일을 메모장이나 vscode로 열어서 내용을 전체 복사하고 붙여넣은 다음, Add SSH Key 버튼을 눌러 SSH 키를 추가합니다.

SSH config 설정하기

아까 SSH 키 파일들을 생성했던 디렉토리에서 config 파일을 하나 생성해줍니다.

config
# ~/.ssh/config 파일에서 설정

# Host ⇒ SSH 명령어를 사용할때 실제로 사용하게 될 명령어
# HostName ⇒ GitHub
# User ⇒ GitHub 유저 이름 (GitHub config user.name)
# IdentityFile ⇒ SSH Private Key 파일 위치

# 회사 계정에 대한 SSH 설정
Host github.com-compnay
HostName github.com
User company
IdentityFile ~/.ssh/id_rsa_company

# 개인 계정에 대한 SSH 설정
Host github.com-dev
HostName github.com
User dev-2nan
IdentityFile ~/.ssh/id_rsa_dev

SSH 연결 테스트

위 과정을 모두 완료했다면, 터미널에서 아래와 같이 등록한 계정에 대해 테스트를 진행합니다.

$ ssh -T git@github.com-company
Hi company! You've successfully authenticated, but GitHub does not provide shell access.

$ ssh -T git@github.com-dev
Hi dev-2nan! You've successfully authenticated, but GitHub does not provide shell access.

GitHub SSH로 사용하기

이제 등록해놓은 SSH 키를 사용하여 여러 계정에서 원하는 레포지토리를 클론할 수 있습니다.

warning

config 파일에서 여러 계정을 사용하기 위헤 Host를 github.com-dev 이런식으로 작성했었습니다. SSH 테스트를 했을 때 처럼 git 명령어를 사용할때 마찬가지로 적용해야 합니다.

# 회사 GitHub Repository 클론 예시
git clone git@github.com-company:Company/project.git

# 개인 GitHub Repository 클론 예시
git clone git@github.com-dev:dev-2nan/project.git

클론받은 이후에 프로젝트 디렉토리에서 git config user.name, user.email 을 설정하고 사용하면 됩니다.