한 대의 기기에서 여러개의 Github 계정 사용하기 for mac

xeptember·2022년 7월 5일
1
post-thumbnail

이 포스트는 mac을 기준으로 작성되었습니다🤓

회사에서든 집에서든 일할 땐 업무용 계정으로, 그 외엔 개인 계정으로 작업하고 싶다면? 👩🏻‍🔧

새 기기를 사거나 변경할 때 마다 개인 작업용으로 쓰겠다는 마음이지만, 살다보면 계획은 늘 틀어지기 마련...다들 나처럼 살잖애..그쵸? 다들 집에서도 일 자주 하잖아요? 🙂
깃헙 계정을 두개로 연결해서 분리해 사용하고 싶은데 매번 까먹어 매번 구글링하는 내 자신이 너무 지겨와서 적어본다

일단 시작해보자.

ssh-key 생성하기

홈 디렉토리(~)에 있는 .ssh 폴더로 이동한다
window에선 숨김폴더로 존재할수도 있지만 만약 디렉토리가 없다면 생성하면 된다

// 디렉토리 생성
$ mkdir ~/.ssh

// 생성 후 이동
$ cd ~/.ssh

디렉토리 생성 후 이동했다면 ssh-key를 생성해야 한다
내가 사용할 Github 계정은 2개라 각각 1번씩 2번 생성하면 된다

$ ssh-keygen -t rsa -b 4096 -C 깃헙 계정 이메일 주소 

위 명령어 실행 후 public/private key pair를 생성중이라는 메세지가 뜨고 잠시 대기하면 아래와 같은 메세지가 뜬다

Enter file in which to save the key (/Users/xeptember/.ssh/id_rsa): 

생성할 파일의 이름을 입력해달라는것인데, 입력하지 않고 넘어가면 id_rsa로 자동지정된다.

이름 입력 후 다음으로 넘어가면

Enter passphrase (empty for no passphrase) :
Enter same passphrase again :

위와 같이 비밀번호를 설정하라는 메세지가 뜨는데 굳이 설정하지 않고 넘어가도 무방하다

The key's randomart image is:
+---[RSA 4096]----+
|  . o.o          |
|   + o .         |
|  E o .          |
|   . * + .       |
|  . o X S.       |
|   + @ .+ o      |
|  + B B. *       |
| oo* O... o      |
| +OBB.+. .       |
+----[SHA256]-----+

이런 귀여운(?) 메세지가 뜨면 정상적으로 생성이 완료된것이고, 확인하려면 ls 명령어를 통해 확인 가능하다

파일은 계정 하나 당 2개씩 쌍으로 생성되었을 것이고, .pub 파일이 Github에 등록시에 사용되는 파일이다.

ssh-key 등록하기

key를 생성했으니 등록을 해야 사용할 수 있다

$ ssh-add ~/.ssh/xeptember (생성한 ssh key 경로 및 파일명)

위 명령어를 입력했을 때

Could not open a connection to your authentication agent.

위와 같은 에러 메세지가 뜨는 경우가 있다
이 때는

$ eval $(ssh-agent)

위 명령어를 입력한 후 재실행 하면 정상적으로 등록 완료 메세지가 뜬다

ssh config

ssh-key 등록까지 완료 했다면 생성한 ssh-key에 대한 config 파일을 작성한다

$ vi ~/.ssh/config

config 파일에는 아래와 같은 내용을 입력한다

# xeptember
Host github.com-xeptember
        HostName github.com
        User xeptember
        IdentityFile ~/.ssh/xeptember

# workspace
Host github.com-hmpark
        HostName github.com
        User hmpark
        IdentityFile ~/.ssh/hmpark
  • Host : github.com-${임의의 호스트 네이밍 지정}
  • HostName : github.com
  • User : ${github 계정 유저 네임}
  • IdentityFile : ${ssh-key path}

Github에 ssh 설정하기

  1. 등록할 계정의 Github에 로그인 후 Settings로 이동한다

  1. 좌측에서 SSH and GPG keys 메뉴로 들어가 New SSH key 클릭
  1. Title은 내가 구분지을수 있게만 임의로 입력 후 Key는 생성한 계정의 .pub 파일을 메모장으로 열어 내용을 복사/붙여넣기 하면 된다.
    플레이스홀더를 보니 key의 시작은 'ssh-rsa' 등으로 시작하고 마지막은 계정의 이메일 주소로 끝난다고 안내되어 있다.
    혹시 모르니 복붙 전 .pub 파일 내용을 체크 후 등록하면 끝!
  1. Add SSH key 버튼을 누르고 나면 비밀번호를 재입력하는 화면이 뜨고, 비밀번호 입력 하면 ssh keys 등록 완료! 내가 만든 다수의 계정을 모두 각각의 Github 계정에서 이렇게 등록하면 된다.

check settings

위 단계까지 마무리 한 후 ssh 설정이 잘 되었는지 확인을 하려면 아래 명령어로 확인할 수 있다

ssh -T git@github.com-xeptember

위의 -xeptember 부분은 내가 config 파일에서 작성했던 Host와 동일하게 입력하면 된다

입력하고 나면 yes/no/[finterprint] 어쩌고 메세지가 뜨는데.. 여기서는 그냥 yes 입력후 넘어가면 아래와 같은 메세지가 뜰 것이다!

Hi xeptemberr! You've successfully authenticated, but GitHub does not provide shell access.

이제 ssh 설정은 끝이다
Github 레포지토리를 연결할 일만 남았다

clone repository

나는 보통 새 프로젝트를 생성할때 Github에서 먼저 레포지토리 생성을 하고, 그 레포지토리를 로컬에 clone 하는 방식으로 한다 (별 이유 없이 그냥 이게 편해서...)

레포지토리를 생성했다면 기존 ssh key 등록을 하기 전에는

위와 같이 HTTPS 탭에 있는 레포지토리 주소를 copy & clone 했다면,
ssh 방식은 아주 살짝 다르다

🚨 SSH 탭에 있는 레포지토리 주소를 복사해서 clone 전에 copy한 주소를 살짝 바꿔야 한다!!

변경 전

git@github.com:xeptember/ex-repository.git

변경 후

git@github.com-xeptember:xeptember/ex-repository.git

git@github.com과 :username 사이에
내가 config 파일에서 입력했던 host에 맞게 변경 후

$ git clone git@github.com-xeptember:xeptember/ex-repository.git

으로 clone 하면 ssh 설정 끝!

바로 위에 설명한 host 주소를 변경하지 않으면 permission 에러가 계속 뜰것이니 꼭 잊지말고 host 주소 바꿔주기 까먹지 말자. 🙂

.gitconfig 설정

이제 위에서 등록한 정보들로 gitconfig 작성을 해야한다
.gitconfig-계정네이밍 의 파일을 생성한다

$ vim ~/.gitconfig-xeptember

그리고 아래와 같이 입력후 :wq

[user]
	email = github 계정 이메일
    name = xeptember

그리고 위 정보를 default .gitconfig에도 설정해준다

echo $HOME
ls -al

위 명령어로 확인해보면 .gitconfig 파일이 있을것이다 (없으면 생성하면 된다)

$ vim ~/.gitconfig

.gitconfig 파일을 열어 최하단에 아래 내용을 추가해준다

[includeIf "gitdir:다른 계정으로 사용할 폴더 디렉토리(마지막에 슬래시(/) 붙임"]
	path=~/.gitconfig-xeptember

이제 위에서 입력해준 폴더 디렉토리에 들어가 명령어를 실행시키면
계정이 전환되는 것을 확인할 수 있다

git config --show-origin --get user.name
file:/Users/hmpark/.gitconfig-xeptemberr	xeptember

이제 진짜 끝..^^ㅗ

글로 적어가면서 정리를 하다보니까 생각보다 내용이 길어졌다...💀
실제로 key 생성 후 등록하는 과정은 그리 오래 걸리지 않았던 것 같은데, 추후에 다시 등록하는 일이 생겨 순서가 헷갈리거나 까먹을 수 있으니 다음번엔 여기저기 구글링 하지 말고 내가 정리한 이 게시글을 참고해야겠다 🕵🏻‍♂️

profile
Front-end engineer

0개의 댓글