github를 ssh로 이용하다가, 2개 이상의 github 계정을 사용하게 될 경우가 있습니다.
(개인계정과 회사계정, 특정 프로젝트 계정 등)
이런 경우 클론 받은 프로젝트의 계정과 ssh가 등록된 계정이 달라서 git push가 안되는 오류 등이 생기는 경우가 있습니다.
$ git config --global user.name "NAME"
$ git config --global user.email "EAMIL"
등으로 유저 설정을 바꿔주면 된다고 해서 해봐도 안되는 경우가 있습니다.
ssh-key와 그 ssh-key를 사용할 유저가 다르게 인식이 되어서 그런 경우가 있습니다.
새로 사용할 github user와 ssh key를 맵핑 시켜서 해결해 보도록 합니다.
실습 예제에서 쓰이는 github 계정은 다음과 같습니다.
기존 계정: Hwan-Linux
변경할 계정: Junanjunan
현재 상황은 다음과 같습니다.
실습 PC: Hwan-Linux가 SSH 기본 유저로 github에 설정
실습 PC에서 ssh-key를 생성해서 ssh-keygen 명령어를 통해 생성된 .pub 내용을 github ssh에 등록해 둔 상황
git config --global user.name과 gitconfig --global user.email을 Junanjunan에 맞게 변경
실습 PC에서 Junanjunan에서 만든 project를 clone받고 push하는 상황 (clone을 public이라 key 상관 없이 받아진 상황)
ssh키를 생성해서 github에 등록해두었고, git config --global user.name / user.email 모두 설정했지만 Permission이 없다는 에러가 발생했습니다.
왜 그러냐면, 해당 local pc에서 ssh로 요청시 Hwan-Linux로 설정이 되어 있기 떄문입니다.
어떻게 확인할 수 있을까요?
아래 명령어를 통해 어떤 유저가 연결되어 있는지 확인해봅니다.
ssh -T git@github.com
Hi Hwan-Linux! You've successfully authenticated, but GitHub does not provide shell access.
Hwan-Linux가 authenticated 되어 있다고 뜹니다.
변경하려는 유저(Junanjunan)에 맞게 설정 해줍니다.
/home/User/.ssh 경로에 config 파일을 만들어서 아래 내용을 입력합니다. (기존에 있는 경우는 수정)
nano /home/User/.ssh/config
Host github.com
HostName github.com
User THE_NAME_YOU_WANT
IdentityFile ~/.ssh/id_rsa
IdentityFile을 새로 생성한 계정에 등록한 파일로 해주어야 합니다.
위와 같이 설정해주고 다시 확인해봅니다.
ssh -T git@github.com
Hi Junanjunan! You've successfully authenticated, but GitHub does not provide shell access.
이제 Hwan-Linux 에서 Junanjunan으로 바뀐게 확인됐습니다.
이제 다시 git push 명령어를 해보면 잘 됩니다.
* github 계정을 복수로 사용할 수 있도록 하는 방법도 곧 올리겠습니다.
'Git & Github' 카테고리의 다른 글
git remote 관리 (0) | 2024.01.19 |
---|---|
git hooks: .git/hooks (0) | 2023.03.23 |
git cherry-pick (0) | 2023.02.05 |
github ssh-key 여러 유저 등록 및 사용 # setting multiple github user with ssh-key (0) | 2023.01.16 |
Github ssh 키등록 # rsa (0) | 2023.01.14 |