~/.ssh/config 파일에 다음과 같이 복수의 ssh 정보를 입력해줍니다.
Host github.com
HostName github.com
User Hwan-Linux
IdentityFile ~/.ssh/id_rsa
Host github.com-Junanjunan
HostName github.com
User taltal
IdentityFile ~/.ssh/id2_rsa
해당 ssh-key들을 github 계정에도 등록해줍니다.
잘 설정되었는지 확인
ssh -T git@github.com
# Hi Hwan-Linux! You've successfully authenticated, but GitHub does not provide shell access.
ssh -T git@github.com-Junanjunan
# Hi Junanjunan! You've successfully authenticated, but GitHub does not provide shell access.
이렇게 하고 git push를 하면... 그래도 아래와 같은 에러 발생
ERROR: Permission to Junanjunan/django_basic_study.git denied to Hwan-Linux.
fatal: Could not read from remote repository.
git push를 할 때 ssh-key를 지정을 해주어야 합니다.
왜냐하면 default Junanjunan을 읽도록 설정되어있는게 아니기 때문입니다.
다음과 같이 GIT_SSH_COMMAND를 함께 해서 git push를 해보면 정상적으로 잘 되는걸 확인할 수 있습니다.
GIT_SSH_COMMAND='ssh -i ~/.ssh/id2_rsa' git push origin
* clone을 받을 때부터 ssh 설정에 맞도록 받기
clone을 받을 때, 위에서 config에 설정한 Host 로 입력해서 받으면,
GIT_SSH_COMMAND 등을 입력하지 않고 할 수 있습니다.
git clone git@github.com-Junanjunan:Junanjunan/django_basic_study.git
# git@github.com-Junanjunan 으로 config에 설정한 HOST와 맵핑시켜서 clone 받기
* remote url 변경
clone을 이미 받은 경우 아래 명령어로 remote repository url을 변경하면 됩니다.
git remote set-url [remote repository reference] [clone url]
git remote set-url origin git@github.com-Junanjunan:Junanjunan/django_basic_study.git
* author 정보 변경하기
ssh를 유저에 맞게 변경해서 remote에 push가 되는데, remote에 가서 확인해보면 기존 유저가 커밋을 한걸로 보입니다.
local에서 commit을 하는 github user의 정보를 새로운 계정으로 변경해주지 않아서 그렇습니다.
아래 명령어를 통해서 새로운 계정의 정보로 변경합니다.
# git 관련 설정 확인
git config -l
# user.name, user.email 변경
git config --global user.name USERNAME
git config --global user.email EMAIL
# 또는 에디터로 한번에 변경이 가능합니다.
git config --global -e
[user]
name = ~~
email = ~~
그런데 이렇게 --global로 설정을 해주면, 레포마다 user.name, user.email 설정을 계속 바꿔줘야 하는데 .git을 갖고 있는 레포들을 --local 설정으로 별도의 설정을 해주면 global보다 local 설정이 먼저 잡혀서 편하게 가능
git config [--local] user.name USERNAME
git config [--local] user.email USEREMAIL
'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 기본 등록 유저 바꾸기 # Change github ssh default user (0) | 2023.01.15 |
Github ssh 키등록 # rsa (0) | 2023.01.14 |