홈 디렉토리(~) 폴더 안 .ssh 폴더(숨긴 풀더)로 이동
c: / 사용자 / 사용자 아이디
폴더에 해당한다.# .ssh 폴더 생성 명령어
$ mkdir ~/.ssh
# .ssh 폴더 안으로 이동 명령어
$ cd ~/.ssh
# userA 계정에 대한 ssh key 생성
$ ssh-keygen -t rsa -C "userA가 사용할 github 아이디@email.com" -f "id_rsa_userA"
# userB 계정에 대한 ssh key 생성
$ ssh-keygen -t rsa -C "userB가 사용할 github 아이디@email.com" -f "id_rsa_userB"
Enter passphrase (empty for no passphrase):
위와 같이 ssh key를 생성하고 나면 .ssh 폴더 안에
이 4개의 파일이 생성되었을 것이다.
.pub이 붙은 파일은 공개키(public key)이다.
붙지 않은 파일은 비밀키(private key)이다.
$ ssh-add id_rsa_userA
$ ssh-add id_rsa_userB
$ eval "$(ssh-agent -s)"
로 초기화를 해준다.
userA github 계정에 로그인한다.
여기에 userA 계정의 ssh key 공개키를 등록할 것이다.
우측 상단의 프로필 이미지를 클릭
> Settings 클릭
좌측 메뉴 중 SSH and GPG keys 클릭
> New SSH key 클릭
Title엔 해당 ssh keys를 구분할 이름을 정해준다.
ex) userA - desktop MAC
Key엔 ssh key의 공개키를 복사해 붙여 넣어준다.
// ssh key의 공개키 확인
$ cat id_rsa_userA.pub
Add SSH Key 클릭
$ vi ~/.ssh/config
# 여기는 주석이다. - userA 깃험 계정 - for work
Host github.com-userA
HostName github.com
IdentityFile ~/.ssh/id_rsa_userA
User userA
# 여기는 주석이다. - userB 깃헙 계정 - for study
Host github.com-userB
HostName github.com
IdentityFile ~/.ssh/id_rsa_userB
User userB
[user]
email = userG@email.com
name = userG
[includeIf "gitdir:~/userA계정을 쓸 폴더의 경로"]
path = .gitconfig-userA
[includeIf "gitdir:~/userB계정을 쓸 폴더의 경로"]
path = .gitconfig-userB
[user]
email = userA@email.com (여기는 해당 폴더에서 사용하고자하는 github 계정의 이메일을 입력한다.)
name = userA
[github]
user = 여기는 반드시 github 프로필의 이름을 넣어줘야 한다.
$ git config user.name
$ git config user.email
만약 위 명령어 입력 시 아무 것도 나오지 않는다면 위에 설정에 잘못된 곳은 없는 지 다시 확인한다.
특히 path 경로나 파일 이름, 계정 이름 등 대소문자까지 모두 일치해야함을 주의하자.
git repository clone 옵션 중 SSH의 주소는 아래와 같은 형식이다.
이때, 이걸 그대로 git clone 하면 안 된다.
git@github.com 뒤에 -userA 와 같이 사용자 이름을 붙여줘야 한다.
이건 위에서$ git config user.name
해서 나온 사용자 이름을 붙여주면 된다.
# 처음 repository clone 시 설정
$ git clone git@github.com-userA:userA/repositoryName.git
이미 clone된 repository에 설정을 변경해주고 싶다면 아래와 같이 set-url을 이용하면 된다.
# 이미 clone된 repository의 설정 변경
$ git remote set-url origin git@github.com-userA:userA/repositoryName.git