티스토리 뷰

# Personal account-userA
Host github.com-userA
	HostName github.com
	User git
   	IdentityFile ~/.ssh/id_rsa_userA
    
# Personal account-userB
Host github.com-userB
	HostName github.com
	User git
   	IdentityFile ~/.ssh/id_rsa_userB​
	# Personal account-userA 
    Host github.com-userA
		HostName github.com
		User git
       	IdentityFile ~/.ssh/id_rsa_userA
    
    # Personal account-userB
    Host github.com-userB
		HostName github.com
		User git
      	IdentityFile ~/.ssh/id_rsa_userB
 ~/.ssh/

vscode를 사용하여 github를 연동할 경우 window의 자격 증명에 하나의 github계정만 연동이 됩니다. 이러다 보니 a계정을 연동을 시켜놓았을 때, b계정의 repo에서 작업을 한 후 commit하면 a계정으로 commit이 된 것으로 나타납니다.

 

만약 b계정의 repo가 private로 되어 있다면 b계정으로 다시 연동을 하지 않으면 push도 되지 않습니다. 이러한 번거로운 작업을 해결 하기 위해서는 ssh를 설정하면 됩니다.

 

1. ssh-key 생성하기

터미널에 아래 명령어를 입력하여 ~/.ssh/ 폴더로 이동한 후 ssh-key를 생성합니다.

 ~/.ssh/
$ ssh-keygen -t rsa -C "userA@my_email.com" -f "id_rsa_userA"
$ ssh-keygen -t rsa -C "userB@my_email.com" -f "id_rsa_userB"

앞에 "userA@my_email.com"와 "userB@my_email.com"는 사용할 github 계정을 입력합니다. ""id_rsa_userA"와 "id_rsa_userB"는 ssh의 파일 이름입니다. 본인에게 편한 이름을 입력하면 됩니다.

 

2. ssh-key 적용하기

~/.ssh/config에 아래와 같이 입력합니다. config파일이 없다면 생성합니다.

# Personal account-userA 
Host github.com-userA
	HostName github.com
	User git
   	IdentityFile ~/.ssh/id_rsa_userA
    
# Personal account-userB
Host github.com-userB
	HostName github.com
	User git
   	IdentityFile ~/.ssh/id_rsa_userB

Host에 적혀있는 github.com 뒤에 -userA -userB는 추후에 github repo에 연결할 url이름입니다. 원하시는 이름을 적으시면 됩니다.

 

ssh-key의 config 설정이 완료된 후에 github를 clone이나 ssh를 연결할 폴더에 .gitconfig 파일 생성한 후 아래와 같이 폴더에 연결할 github계정을 적습니다.

[user]
	email = userA@my_email.com

 

3. ssh-key 깃허브에 적용하기

~/.ssh/ 폴더에 가면 .pub 확장자 파일 안에 ssh-key가 있습니다.

ssh-rsa AAAAB3NzaC1yc ... = userA@my_email.com

이것을 모두 복사 한 후 github setting으로 갑니다.

아래 탭에서 new ssh key를 눌러 ssh key를 등록합니다. title은 편하신 이름으로 설정한 후 key부분에 복사한 ssh-key를 입력하면 됩니다. 완료가 되면 아래와 같이 ssh key가 연동됩니다.

이 후 로컬의 폴더로 가서 아래 명령어를 입력합니다.

$ ssh-add ~/.ssh/id_rsa_userA

 

만약 Could not open a connection to your authentication agent 에러가 뜬다면 아래 명령어를 입력 합니다.

$ eval $(ssh-agent)
$ ssh-add ~/.ssh/id_rsa_userA

4. clone 또는 계정 연동하기

ssh clone 주소는 git@github.com:github계정/repo이름.git로 되어 있을 것 입니다. 여기에 ~/.ssh/config에서 작성했던 Host를 추가해야합니다.

// ~/.ssh/config
Host github.com-userA
...

// ssh 주소
git@github.com-userA:github계정/repo이름.git 

위의 ssh 주소를 clone할 때 사용하면 됩니다. 만약 이미 clone한 repo라면 아래 명령어를 입력하여 업데이트 하면 됩니다.

git remote set-url origin git@github.com-userA:github계정/repo이름.git 
반응형

'Git' 카테고리의 다른 글

github ssh 설정  (0) 2020.07.01
다른 계정의 pripvate repo 작업하기  (0) 2020.06.23
git flow  (0) 2019.05.04
git rebase / squash  (0) 2019.05.04
git reset  (0) 2019.05.04
댓글