Git 여러 계정 사용하기
회사계정, 개인계정을 하나의 컴퓨터에서 사용하다보면 repository에 접근하기가 어려워진다.
이를 위한 해결책은 bash에서 ssh key를 이용한 방법이 있다.
1. rsa 키 만들기
ssh-keygen -t rsa -C "깃헙계정@email.com" -f id_rsa_사용자명
회사계정, 개인계정 모두 만든다.
그럼 아래와 같은 이상한 이미지가 나온다.
rsa 키는 'id_rsa_username'과 'id_rsa_username.pub' 두가지가 만들어진다.
~/.ssh 폴더 아니면 bash의 경로에서.
2. rsa 키 등록하기
ssh-add id_rsa_username
키가 위치한 bash에서 위 명령어를 수행한다.
could not open a connection to your authentication agent
위와 같은 에러가 난다면, 아래 명령어를 입력한다.
eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa_username
3. ssh 등록하기
vim ~/.ssh/config
# Juzdalua
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_juzdalua_window
config 파일을 수정해야한다. 없으면 생성하자.
- host명은 접속할 ssh 명을 구분할 수 있다.
** 원격접속 할 일이 있을 때는 도메인을 지정한다.
- User는 git으로 고정한다.
** 원격접속 할 일이 있을 때는 해당 사용자명을 지정한다.
ex) AWS ec2 인스턴스는 ubuntu
- IdentityFile은 키가 저장된 위치를 지정한다.
** AWS 원격접속 할 일이 있을 때는 pem 키가 저장된 위치를 작성한다.
4. github 계정에 ssh키 등록하기
github에 로그인하고 settings에 들어간다.
좌측 SSH and GPG keys에서 제일 처음 ssh키를 등록한다.
키는 id_rsa_username의 내용을 전부 복사 붙여넣기 하면 된다.
notepad로도 열리니 걱정하지 마셈.
이렇게 개인계정, 회사계정 모두 똑같은 절차를 마친다.
5. bash에서 확인하기
현재 사용자명을 확인하고 사용자명을 바꿔보았다.
git config --global user.email git@email.com
user.name과 user.email을 같이 바꿔줘야된다.
user.name만 바꾸고 comming과 push를 했더니 사용자가 바뀌지 않았다.
6. repository clone
이제는 ssh를 이용해 클론해야한다.
git clone 붙여넣기
7. 재부팅 할때마다 등록해야하는 키 영구등록하기
ssh-add 명령어를 사용하면 재부팅할때마다 해야되서 너무 귀찮다.
#등록된 키 확인
ssh-add -l
이제 영구적으로 등록해보자.
sudo ssh-add -K "key"
ex) sudo ssh-add -K ~/.ssh/id_rsa
하지만 재부팅을 하면 새로 키를 등록해야했다.
그래서 찾은 방법. 이건 잘 되는 것 같다.
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
/.ssh/config 파일에 위 항목을 추가해뒀다.
회사용, 개인용 계정 두가지 모두 추가했다.
일단 지금은 비밀번호를 묻지 않고 잘 작동한다.
**) 여러 계정을 사용할 경우
ssh-add -D로 등록된 키를 해제하고 ssh-add ~/.ssh/id_.... 새로 등록한다.
키에 맞는 계정으로 이름과 메일을 변경한다.
# Add
git config --global user.name USERNAME
git config --global user.email EMAIL
# Remove
git config --global --unset user.name USERNAME
git config --global --unset user.email EMAIL
# Check
git config --list
번거롭지만 현재는 이렇게 사용중이다.