드디어 미뤄둔 ssh를 이용한 Github와의 연동을 시작해보겠습니다.
필자는 다양한 깃허브 계정을 한 컴퓨터에서 사용하고 싶어서 ssh 등록을 해보겠습니다.
현재 환경은 Mac os입니다.
ssh에 대한 개념은 아래 포스팅에서 학습하실 수 있습니다. 시작하겠습니다.
https://devdebin.tistory.com/132?category=973762
먼저 .ssh 디렉터리로 이동을 한다.
cd ~/.ssh
이제 ssh 비대칭 키를 생성하자.
ssh-keygen -t rsa -b 4096 -C "example@email.com"
위 명령어는 ssh 비대칭 키를 생성하는 명령어다.
- ssh-keygen : ssh 비대칭키 생성 명령어
- -t rsa : 암호화 타입을 rsa 방식을 사용
- -b 4096 : 생성할 키의 비트수 4096으로 지정, rsa 타입을 위해선 최소 768 비트가 필요하며 default로 2048 비트이다. 4096으로 더 난독화된 키를 생성한다.
- -C “example@email.com“ : 코멘트로 일종의 주석이다. 보통 이메일 계정이나 아이디등을 입력한다.
아래와 같이 진행한다. 비밀번호도 설정 가능한데 본인은 일단 설정했다. 같은 비밀번호를 두 번 입력하면 된다.
id_rsa는 비밀키이고, id_rsa.pub는 공개키이다.
이 id_rsa.pub 공개키가 github에 등록해야 할 대상이다.
이제 공개키를 복사해서 깃허브에 등록하면 된다.
깃허브에 로그인을 하고 접속하자. Settings로 이동하자.
SSH and GPG keys로 들어와서 new SSH keys를 누른다. 그러면 아래와 같은 창이뜬다.
그러면 title을 입력하고 아까 복사한 Key를 넣어준다.
그럼 아래와 같이 키가 공개 키가 생성된 것을 확인할 수 있다.
이제 이렇게 키 생성을 완료했다. 이제부터 중요하다. 필자의 목표인 다수의 계정을 컨트롤할 셈이다.
다수의 계정을 컨트롤 하기 위해서는 ~/.ssh 디렉터리에 config파일이 필요하다.
깃헙이 ~/.ssh/config 를 바라보기 때문에 config 파일을 만든다.
//개인용 계정
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
//사무용 계정
Host github.com-work
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_work
사무용 계정 키도 따로 만들었다.
Host에서 github.com-work처럼 -work말고도 github.com-userA 이렇게 값을 변경할 수 있다.
ssh 사용 시 Host명을 이렇게 주게 되면 해당하는 HostName으로 접속하고, 인증키로 IdentifyFile을 참조한다.
이렇게 해서 다양한 계정을 사용할 준비가 되었다.
이제 아래와 같은 ssh 주소가 있다고 가정해보겠다. 그리고 git clone을 진행해보겠다.
우리는 사무용 계정을 사용할 것이다.
git@github.com:happysubin/git-test.git
- git clone git@github.com-work:happysubin/git-test.git
- 우리는 사무용 계정의 Host를 github.com-work로 만들었으므로 ssh 주소에 이것을 반영하면 된다.
이제 해당 레포지토리는 해당 호스트의 키를 가져올 것이므로 글로벌 계정과 충돌하지 않게 email, nam에 local 설정을 진행한다.
git config --local user.name "사무용 name"
git config --local user.email "사무용 email"
그러면 이제 해당 레포지토리를 클론한 디렉토리에서 푸쉬를 진행하면 개인 계정이 아닌 사무용 계정으로 push, pull이 가능하다!
이상으로 포스팅을 마칩니다. 감사합니다.
참고 자료
https://www.hanumoka.net/2020/04/16/git-20200416-git-ssh-key-generate/
https://hankyeolk.github.io/2021/08/15/githubSSH.html
댓글