본문 바로가기
Git | Github

GitHub 계정 여러개 사용하기

by stuckyi 2022. 9. 25.

문제

맥북에서 Github 회사 계정이 이미 세팅된 상태에서 토이 프로젝트를 위해 GitHub 개인 계정으로 사용하려 하니, 

아래와 같은 메시지가 나왔다.

remote: Permission to ziyunn/fe-dev-env.git denied to ziyun-kim.
fatal: unable to access 'https://github.com/ziyunn/fe-dev-env.git/': The requested URL returned error: 403

토이 프로젝트 경로에서 git config 설정을 개인 계정으로 잘 맞췄다고 생각했는데. 왜 안 되는 것인가...

$ git config user.name "GitHub 개인 계정 이름"
$ git config user.email "GitHub 개인 계정 이메일"

 

해결 방법

위와 같은 문제 해결 방법을 친절하게 설명해준 블로그 글이 있어서 똑.같.이 따라 하면서 해결을 해보았다.

 

1. ssh-key 생성

회사 계정 셋팅 시 이미 나는 ssh 폴더가 존재하여, 해당 폴더에서 ssh-key를 생성하였다.

$ cd ~/.ssh
$ ssh-keygen -t [암호화 방식] -b [생성할 key의 크기] -C 'GitHub 개인 계정 등록 메일 주소'
  • 암호화 방식 : rsa 방식 (rsa 방식은 다시 살펴봐야겠다..)
  • 생성할 key의 크기 : 기본 3072 - 최대 4096
$ ssh-keygen -t rsa -b 4096 -C 'jykim306@gmail.com'

위의 명령어를 치면, public/private rsa key pair 생성 중이고 생성할 파일의 이름을 적으라는 메시지가 나온다.

Generating public/private rsa key pair.

나는 회사에서 이미 id_rsa 파일을 사용하고 있어서 개인 계정 이름을 뒤에 붙여줬다. id_rsa_ziyunn

비밀번호는 따로 지정하지 않고 엔터 치면서 넘어갔다.

위와 같이 key값이 생성되었다면, ssh 경로에 id_rsa_ziyunn (비공개 파일) / id_rsa_ziyunn.pub (공개 파일) 파일이 생성되어 있음!

GitHub에 등록할 땐 .pub 파일을 사용해야 한다. 

 

2. ssh-key 등록

key를 생성했으니, 등록을 해야한다.

$ ssh-add ~/.ssh/id_rsa_ziyunn

나는 따로 오류가 나지 않았지만, 블로그 글에서 오류가 난다면 아래와 같이 ssh-agent를 실행하고 다시 등록을 실행하면 된다고 한다!

$ eval $(ssh-agent)

 

3. ssh config 파일 작성

나는 이미 ssh 경로에 config 파일이 존재하여, config 파일을 열어서 개인 계정 내용을 작성해주었다.

$ ssh open -t config
# 깃헙 개인 계정 
#  -------------------
Host github.com-ziyunn
  HostName github.com
  IdentityFile ~/.ssh/id_rsa_ziyunn
  User ziyunn

 

4. GitHub 계정 SSH 설정

이제 내 개인 계정에 ssh-key를 등록해주면 된다.

Github Settings 화면에 들어가면 SSH and GPG keys 메뉴에서 New SSH key를 클릭하여 새로운 SSH key를 설정하면 된다.

이때 나는 블로그 글에서 .pub 파일 의 key값을 사용해야 한다는 부분을 놓쳐서 처음엔 비공개 파일 key를 등록했다.

"Key is invalid. You must supply a key in OpenSSH public key format." 와 같은 메시지가 나오기 때문에 바로 공개 파일 key로 등록하여 해결하였다.

 

5. 설정 확인 방법

제대로 설정이 되었는지 확인하려면 아래의 명령어를 실행해보면 된다.

$ ssh -T git@github.com-ziyunn

 

6. ssh-key로 GitHub 프로젝트 설정

처음 remote 세팅은 HTTPS로 하였고, push를 하면 Permission 문제가 있었다. 

그래서 해당 remote를 지우고 다시 SSH로 세팅을 시도하였고,



 

이제 Permission 문제없이 사용이 가능해졌다!

TMI ) 문제 해결에 크나큰 도움을 주신 블로그 작성자님께 감사의 댓글을 남겼다.. Thank you