Git | Github

GitHub 계정 여러개 사용하기

stuckyi 2022. 9. 25. 17:37

문제

맥북에서 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