깃헙(Github) 계정을 개인용&업무용 분리하여 사용하기
저는 맥북에서 깃헙(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.helper
에 store
옵션을 주게되면 해당 리포지토리에는 인증 정보가 저장됩니다. 그리고 저장된 인증 정보를 사용하기 때문에 인증 절차가 생략됩니다.
모든 리포지토리에 적용하려면 다음 명령어를 사용합니다.
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_ed25519
와 id_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
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.
Upvoted! Thank you for supporting witness @jswit.
Please check my new project, STEEM.NFT. Thank you!