-
깃허브(github) 한 컴퓨터에서 여러 계정 사용하기Git&Github 2024. 6. 25. 10:27반응형
나의 경우 총 3개의 깃헙 계정 등록이 필요했다.
전에도 한 적은 있었는데 할 때마다 까먹어서 기록해두려고 한다.
등록 필요한 계정은 총 3개다.
1. 회사 업무용 깃헙 계정
2. 이전에 SI 수주 받아서 Vercel에 배포 되는데 사용하고 있는 퇴사자의 깃헙 계정
3. 개인적으로 사용하는 깃헙 계정
전에도 똑같은 블로그를 참고 하고 만들었는데 이번에도 똑같이 참고하면서 만들어보니 3개가 다 잘 되더라.
1. SSH key 생성하기
cd ~/.ssh
.ssh 폴더에 들어가서 파일 유무를 확인해보자.
기존에 가지고 있던 파일이 있었지만 깨끗하게 다 지우고 다시 만들어주었다.
만드는 방법은 아래와 같다.
ssh-keygen -t rsa -C "회사이메일주소" -f "id_rsa_company" ssh-keygen -t rsa -C "퇴사자회사이메일주소" -f "id_rsa_company2" ssh-keygen -t rsa -C "개인이메일주소" -f "id_rsa_personal"
하나씩 입력을 하면 되는데 공개키 + 개인키를 만들고 구문을 넣으라고 하는데 그냥 엔터로 skip 해줘도 무방하다.
이렇게 하고 나면 나의 경우 각각 2개씩 파일이 나왔다.
id_rsa_company id_rsa_company.pub id_rsa_company2 id_rsa_company2.pub id_rsa_personal id_rsa_personal.pub
키 관리를 위해서 ssh-agent에 새로 생성한 키들을 저장한다.
아래 명령어로 백그라운드에 ssh-agent를 실행시켜줄 수 있는데 pid값은 매번 바뀌니 타 블로그의 예시를 보고 달라도 문제가 되진 않는다.
eval "$(ssh-agent -s)"
이제 각각 생성한 개인키를 ssh-agent에 저장한다.
ssh-add ~/.ssh/id_rsa_company ssh-add ~/.ssh/id_rsa_company2 ssh-add ~/.ssh/id_rsa_personal
이렇게 하나씩 추가하고 난 후 제대로 되었는지 재확인을 해보면 아래와 같이 나오는 것을 볼 수 있다.
ssh-add -l # 출력 3072 SHA256:lc... 회사계정주소 (RSA) 3072 SHA256:bq... 회사계정주소2 (RSA) 3072 SHA256:CI... 개인계정ㅈ두소 (RSA)
2. 깃허브에 새로운 SSH 공개 Key 추가
이를 위해서는 생성된 .pub 파일을 복사해서 붙여넣기를 해야한다.
우선 붙여넣는 곳은 아래와 같다.
1. github 계정 로그인 후 오른쪽 위의 프로필을 클릭 -> Settings
2. SSH and GPG keys
3. New SSH Key
들어가보면 Title과 Key가 있는데 Title은 내가 알아보기 쉽게 정하면 되고 Key는 .pub 내용을 넣으면 된다.
.pub 내용을 가져오는 방법은 아래와 같다.
vim ~/.ssh/~~.pub
이렇게 들어가서 전체 copy를 해와도 괜찮고, 이게 귀찮다면 터미널에서 할 수 있는 방법이 2가지가 있다.
cat ~/.ssh/id_rsa_~~~~.pub
이렇게하면 터미널에 불러와지는데 드래그해서 복사해도 된다.
혹은
pbcopy < ~/.ssh/id_rsa_company2.pub
이런식으로 작성하면 바로 복사가 되니 어떤 방법이던 편한 것으로 사용하고 Github의 Key 란에 잘 붙여넣기 한 후 Add SSH key 버튼을 눌러주면 된다.
3. Config 환경설정
마지막으로는 config 파일에 들어가서 환경 설정을 해줘야한다.
똑같이 .ssh 폴더로 진입해서 config 파일을 열자.
cd ~/.ssh vim config
그리고 각 계정마다 환경설정을 해주는데 되도록 아래 양식을 지켜서 작성했다.
그리고 Host 부분을 너무 특이하게 하기보다는 접근하고 기억하기 쉬운 것으로 하는 것이 좋을 것이다.
# Company Host github.com-company HostName github.com User <유저아이디> IdentityFile ~/.ssh/id_rsa_company # Company2 Host github.com-company2 HostName github.com User <유저아이디> IdentityFile ~/.ssh/id_rsa_company2 # Personal Host github.com-personal HostName github.com User <유저아이디> IdentityFile ~/.ssh/id_rsa_personal
- Host : 나중에 ssh로 연결할 때 사용하고, 매번 clone 등을 할 때 사용되니 구분이 쉽고, 기억하기 편한 이름이 좋다.
- HostName : github 도메인
- User : 유저 아이디를 사용하는데 github 사용자 아이디로 작성
- IdentifyFile : 개인키 경로를 작성
그렇다면 ssh 연결이 제대로 되었는지 테스트해봐야 할 것이다.
아래 명령어로 검사를 해보자.
ssh -T git@github.com-company ssh -T git@github.com-company2 ssh -T git@github.com-personal
이렇게 했을 때
"Hi <깃헙 계정>! You've successfully authenticated, but GitHub does not provide shell access."이런 문구가 나오면 성공이다.
4. SSH로 깃헙 Repository 받기
일반적으로 이미지 경로처럼 SSH를 통해서 복사를 하면 아래와 같이 나올 것이다.
git@github.com:회사깃허브이름/깃허브레파지토리.git
이제 우리가 git clone을 할 때는 git@github.com 부분에 추가를 조금해줘야하는데, 예를 들어서 company2에 있는 것을 clone하겠다고 한다면 아래와 같이 작성하게 된다.
git clone git@github.com-company:회사깃허브이름/깃허브레파지토리.git
이렇게만 바꿔주면 git clone이 가능해진다.
만약 위 과정을 모두 잘 소화했는데도 불구하고 회사계정에서 잘 되지 않는 경우가 있다면 collaborate 등을 확인해봐야할 것 같다.
마지막으로 commit, push 등을 하기 전에 user.name, user.email을 확인해서 수정해줘야할 것이다.
git config user.name 회사계정아이디 git config user.email 회사계정이메일 # 전역으로 설정하고자 할 때 --global로 설정 git config --global user.name git config --global user.email # 설정 잘 됐는지 확인하려면 아래 명령어 사용 git config user.name git config user.email
[ 참고 블로그 ]
반응형'Git&Github' 카테고리의 다른 글
특정 브랜치만 git clone 하는 방법 (0) 2022.04.28 풀리퀘스트 방법 (pr, pull request) (0) 2021.06.24