본문 바로가기

카테고리 없음

github ssh key 등록으로 간편하게 사용하기

안녕하세요 steady-code입니다. 처음 블로그를 시작하면서 '블로그 용' 코드를 관리하기 위해 github에 계정을 새로 생성했습니다. 2020년 4월 14부터 github에서 개인에게 private repository 를 무제한으로 허용해주면서 저도 개인 코드를 작성할 때는 private repository 를 활용하고 있습니다. private repository 를 무제한으로 생성하는 것은 분명 좋은 소식이나, 계정이 여러개가 되면서 각 계정별로 저장소를 관리하는 것이 까다로워졌습니다. 본 포스팅은 하나의 컴퓨터에서 여러개의 github 계정을 관리하고, private repository 접근에 어떻게 활용할 수 있는지에 대한 내용을 담았습니다.

 

목차
1. ssh key 생성 및 등록
2. github에 ssh '공개키' 추가하기
3. 등록 확인 및 활용 방법

1. ssh key 생성 및 등록

먼저 github 에 ssh 로 연결을 하기 위해서는 본인 소유의 컴퓨터에 ssh key 생성을 필요로 합니다. 다음의 명령어를 활용하여 ssh key 를 생성해보겠습니다.

$ cd ~/.ssh
$ ssh-keygen -t rsa -C "email" -f "id_rsa_github1" 
$ ssh-keygen -t ras -C "email" -f "id_rsa_github2"

key 생성을 하셨다면 다음의 명령어로 생성된 key를 확인합니다.

$ ls ~/.ssh
config id_rsa_github1.pub id_rsa_github1 id_rsa_github2.pub id_rsa_github2

위와 같이, config 파일을 포함하여 id_rsa_github1, id_rsa_github1.pub, id_rsa_github2, id_rsa_github2.pub 총 4개의 파일이 추가된 것을 확인할 수있습니다. ssh key 는 생성을 할 때 공개키와 개인키를 생성하며, 공개키 (.pub) 만 외부에 활용하고 개인키는 외부에 노출시키지 않고 본인만 사용해야합니다. 그 다음으로 생성된 ssh key 를 활용하여 ~/.ssh/config 파일을 수정합니다.

# ~/.ssh/config
Host steadycode
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_github1 # private key
    PreferredAuthentications publickey
    IdentitiesOnly yes

Host another
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_github2 # private key
    PreferredAuthentications publickey
    IdentitiesOnly yes

위와 같이, 2개의 github 계정을 동시에 사용하기 위해 config 파일을 수정해줍니다. Host 는 여러분이 github 접속에 활용하실 별명을 붙이시면 되며, 위와같이 hostname, user, identityfile 등을 추가해주시면 됩니다. identity file 에는 여러분이 생성하신 key 중 '개인키'를 활용하시면 됩니다.


2. github 계정에 '공개키' 추가하기

먼저 github 에 접속하셔서 아래에서 두번째에 있는 setting 에 들어갑니다. 그 다음 왼쪽 바에 존재하는 ssh and GPG keys 를 클릭해줍니다. 그 다음 new ssh key 를 클릭합니다.

new ssh key 를 클릭하셨다면 다음과 같은 화면이 나옵니다. 여기에 여러분이 생성하신 '공개키'를 삽입해줍니다. title 에는 키 식별이 가능한 원하는 별명을 넣으시고, key 에 해당하는 부분에 공개키를 복사하고 넣으시면 됩니다. 이후 add ssh key 를 클릭합니다.


3. 등록 확인 및 활용 방법

키 등록여부를 확인하고 싶으시면 다음과 같은 명령어를 실행하면 됩니다. 저의 경우는 steadycode 로 ~/.ssh/config 에 별명을 지정해놓았으니 다음과 같은 명령어를 사용하겠습니다.

$ ssh -T steadycode
"Hi steaycode! You've successfully authenticated, but GitHub does not provide shell access."

위와 같은 명령어가 실행되었다면 성공적으로 ssh key 가 등록되었다는 것입니다. 그렇다면 이를 어떻게 private repo 에 활용할 수 있는지 간단히 알려드리고자 합니다.

 

보통 github repository 는 다음과 같이 두가지 방법 (https, ssh) 으로 clone 이 가능합니다.

# https
https://github.com/<github 계정 이름>/<repository 이름>.git
# ssh
git@github.com:<github 계정 이름>/<repository 이름>.git

저의 경우 git@github.com 을 저만의 별명 steadycode 로 등록해놓았기 때문에 다음과 같이 간단하게 git clone 이 가능합니다.

git clone steadycode:<github 계정이름>/<repository 이름>.git

글을 마치며

현직 개발자 분들, 혹은 이제 개발을 막 처음 시작하시는 분들 모두 github 를 많이 애용합니다. github 를 활용하면서, 하지만 공개 불가한 private 코드를 작업할 때, 이를 관리하면 크고 많은 에러가 많이 발생을 하실겁니다. 저 역시 많은 에러를 경험을 했습니다. 본 포스팅은 여러분이 에러 해결에 드는 시간과 에너지를 줄이기 위한 마음에 작성하였습니다.궁금하신 점이 있으시다면 본 포스팅에 댓글 부탁드립니다.다들 좋은 하루 되세요!