입사 후 개발용 맥북을 받아 회사용 github 계정만 사용하고 개인 계정은 개인 맥북에서만 사용하고 있었습니다.
하지만 점점 개발용 맥북만 쓰다보니 개인 github 계정도 등록하되 폴더별로 분리해서 사용해야겠다는 생각이 들었고,
설정한지 꽤 되었지만 이제서야 그 방법을 포스팅을 해봅니다.
- 기존 설정 상태
기존에는 ~/.gitconfig 파일을 확인해보면 회사 계정만 등록되어 있는 상태입니다.
- ssh key 생성
먼저 개인 계정을 등록할 때 사용할 ssh 키를 생성해야 합니다.
$ cd ~/.ssh
$ ssh-keygen -t rsa -f "id_rsa.xxx"
xxx 에는 제 개인 계정 아이디를 넣었습니다. 해당 명령어를 실행하면 사용할 암호도 입력하라는 문구가 나오는데 그냥 넘어가면 됩니다.
키 생성이 완료되면 해당 위치에 id_rsa.xxx / id_rsa.xxx.pub 이렇게 두 파일이 만들어집니다.
- ssh key github 등록
github 개인 계정으로 로그인 후 settings > SSH and GPG keys 으로 이동하면 아래와 같은 페이지가 나옵니다.
저는 이미 등록을 해서 SSH keys 에 등록된 키가 보이는 상태입니다. 위의 New SSH key 버튼을 클릭합니다.
Title 은 적당히 짓고 Key 에는 아까 만든 ssh key 파일 중 id_rsa.xxx.pub 의 내용을 그대로 붙여넣습니다. Add SSH key 버튼을 클릭하면 SSh keys 에 추가된 키가 보일겁니다.
- ~/.ssh/config 파일 수정
이렇게 등록한 ssh 키는 config 파일에서 호스트 별로 관리가 가능합니다. 관리는 ~/.ssh/config 파일에서 할 수 있는데 이 파일이 없을 경우 새로 만들면 됩니다.
$ vi ~/.ssh/config
Host 와 User 의 흰색 칸에는 개인 계정명을 넣고 IdentityFile 에는 아까 만든 키 중 public key 가 아닌 id_rsa.xxx 파일명의 개인키를 입력한 후 저장합니다. 위 설정은 호스트가 github.com-xxx 면 실제 호스트는 github.com 을 사용하고, 이 때 ssh key 파일을 id_rsa.xxx 로 사용한다는 의미의 설정입니다.
- IncludeIf 를 통한 계정 분리
얼추 설정은 마쳤지만, 원하는 형태는 특정 위치에서만 등록한 개인 github 계정을 사용하는 것입니다.
저는 업무용 맥북에서 개인 작업은 ~/PrivateWork 위치에서만 진행하므로 이 위치에서만 개인 계정을 사용하고자 합니다.
이 설정은 아까 제일 처음 보았던 ~/.gitconfig 에서 할 수 있습니다.
먼저 ~/.gitconfig 와 동일한 위치에 gitconfig-private 라는 파일을 만든 후 개인 계정 내용을 넣어 저장합니다.
$ vi ~/.gitconfig-private
~/.gitconfig-private 파일엔 개인 github 계정의 email 과 name 을 넣어줍니다.
그리고 ~/.gitconfig 파일을 열어 아래와 같이 수정해줍니다.
$ vi ~/.gitconfig
해당 포스팅 제일 처음 보았던 설정에서 includeIf 부분이 추가되었습니다. gitdir 로 설정한 위치에선 path 에 지정한 gitconfig-private 파일의 정보를 사용한다는 의미입니다.
- 주의할 점
등록한 해당 위치에서 git 작업 시 최초 remote url 등록할 때
git@github.com:{user}/tmp-test.git
위의 형태가 아닌 아래의 형태로 등록해야 하는 점입니다.
git@github.com-xxx:{user}/tmp-test.git
이유는 아까 ~/.ssh/config 에서 ssh 키를 호스트 별로 사용하도록 분리했기 때문이며 위처럼 호스트를 github.com-xxx 로 설정해야 개인 계정용으로 등록한 ssh 키를 사용해 개인 github 에 git 작업을 진행할 수 있습니다.
'Backend > Git' 카테고리의 다른 글
Github actions - ssh trouble shooting (0) | 2022.12.03 |
---|---|
Use github actions (0) | 2022.11.26 |