깃헙(Github) 계정을 개인용&업무용 분리하여 사용하기

in kr-dev 커뮤니티4 months ago (edited)

저는 맥북에서 깃헙(Github) 개인 계정과 회사 계정을 사용하고 있는데
이 두 계정이 섞이는게 싫어서 각각 분리하여 사용하고 있습니다.
매번 설정할때마다 잘 기억이 나지 않아 이번 기회에 정리했습니다.

폴더별 깃헙 계정 분리하여 사용하기

gitconfig global 설정하기

~/.gitconfig 파일을 다음과 같이 작성합니다.

[user]
  email = user@email.com
  name = username

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

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

위와 같이 includeIf 를 사용하면 폴더별로 다른 config를 사용할 수 있습니다.

~/.gitconfig-personal 파일에는 개인용으로 사용하는 계정정보를 다음과 같이 작성합니다.

[user]
  email = userA@email.com 
  name = userA

~/.gitconfig-company 파일에는 업무용으로 사용하는 계정 정보를 위와 비슷하게 작성합니다.

~/.gitconfig 파일을 위와 같이 작성하고 나면 아래 사항이 적용됩니다.

  • ~/personal/ 폴더(하위 폴더 포함)는 ~/.gitconfig-personal 의 계정 정보를 사용합니다.
  • ~/company/ 폴더(하위 폴더 포함)는 ~/.gitconfig-company 의 계정 정보를 사용합니다.
  • 그 외 폴더는 ~/.gitconfig 의 계정 정보를 사용합니다.

해당 폴더가 어떤 계정을 사용하는지 확인하려면 다음 명령어를 사용합니다.

git config user.name
git config user.email

local config 에 설정하기

단일 저장소에 대해 Git 사용자 이름을 설정하려면 다음 명령어를 사용합니다.

git config --local user.name "anpigon"
git config --local user.email "anpigon@email.com"

local 설정은 global 설정보다 더 높은 우선 순위를 가집니다.

깃헙 계정/패스워드 사용하여 인증하기

GitHub는 패스워드 대신 사용할 수 있는 PAT(Personal Access Token)를 지원합니다. PAT는 GitHub의 Settings > Developer Settings > Personal access tokens에서 생성할 수 있습니다.

깃헙 사용할때마다 매번 패스워드를 입력하는 것은 번거롭기 때문에 다음과 같이 인증 정보를 저장하는 방법을 사용합니다.

git config credential.helper store

credential.helperstore 옵션을 주게되면 해당 리포지토리에는 인증 정보가 저장됩니다. 그리고 저장된 인증 정보를 사용하기 때문에 인증 절차가 생략됩니다.

모든 리포지토리에 적용하려면 다음 명령어를 사용합니다.

git config credential.helper store --global

그리고 git 클론할때 URL를 다음과 같은 형태로 사용합니다.

git clone https://[username]@github.com/[username]/[repository name].git

github.com 도메인 앞에 username를 붙여서 해당 유저로 인증하도록 알려줄 수 있습니다.

SSH를 사용하여 인증하기

저는 패스워드를 사용하는 것 보다 SSH 키를 사용하는 인증하는 방식을 선호합니다.

ssh 키 쌍 생성하기

ssh 인증을 사용하기 위해서는 SSH 키쌍을 생성해야 합니다.
SSH 키 생성 방법은 다음 Github 문서를 참고하였습니다.
새 SSH 키 생성하기

ssh-keygen -t ed25519 -C "your_email@example.com"

2개의 키 파일이 id_ed25519id_ed25519.pub 생성됩니다. 생성된 키 저장 위치는 ~/.ssh/ 입니다.

그 다음 ~/.ssh/config 파일을 열고 다음을 추가합니다.

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

SSH 개인 키를 ssh-agent에 등록합니다. (macos)

ssh-add --apple-use-keychain ~/.ssh/id_ed25519

Github에 SSH 공개키 등록하기

깃헙 문서 새 SSH 키 추가하기를 참고 하였습니다.
다음 명령어를 사용하여 공개키를 클립보드에 복사합니다.

pbcopy < ~/.ssh/id_ed25519.pub

그 다음 복사된 이 공개키를 GitHub의 Settings > SSH and GPG keys > New SSH Key에서 등록합니다.

개인용/업무용 SSH 분리하여 관리하기

Outsider님 블로그를 참고하여 작성하였습니다.

ssh를 개인용과 업무용을 분리하여 관리하려면 SSH 키를 각각 생성합니다. (SSH 키를 중복 등록을 할 수 없습니다.)

1. 개인용 ssh 키 생성하기

ssh-keygen -t ed25519 -C "your_email@example.com" -f "id_ed25519-personal"

2. 업무용 ssh 키 생성하기

ssh-keygen -t ed25519 -C "your_email@example.com" -f "id_ed25519-company"

그리고 ~/.ssh/config 를 다음과 같이 작성합니다.

Host github-personal.com
  HostName github.com
  User git  
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519-personal

Host github-company.com
  HostName github.com
  User git  
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519-company

위와 같이 설정하면 git 클론할때 다음과 같은 형태의 url를 사용해야 한다.

git@github-personal.com:[username]/[repository name].git
git@github-company.com:[username]/[repository name].git
Sort:  
 4 months ago 

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Upvoted! Thank you for supporting witness @jswit.
Please check my new project, STEEM.NFT. Thank you!
default.jpg

Coin Marketplace

STEEM 0.22
TRX 0.06
JST 0.025
BTC 19338.26
ETH 1331.58
USDT 1.00
SBD 2.44