[Github] 서버의 SSH key 등록하여 인증없이 Remote Repository 접근 연결하기 개발 이것저것


여기서는 SSH Key를 등록하여 공용 서버에 여러 Remote Git Repository 를 인증없이  연결하는 법을 정리하였다.

이것은 처음에 배포자동화를 위해 git repository 를 계정정보 입력없이 땡겨오도록 하고자 하는 욕구? 가 생겨 알아보게 됨.

그럼 아래의 2 개의 프로젝트를 서버 한대에 세팅하는법을 예를 들어 그 순서를 알아보자.
github.hello.com/aaa 
github.hello.com/bbb 


먼저, 서버를 접속한 뒤, 아래순서를 따라해 봅시다.

======================================

1. 서버에서 ssh key 생성 (private + public)

: 각각 repository 별로 1개씩 생성해준다. 한번 생성하면 세트로 2개가 같이 생성 됨.

$ cd ~/.ssh


$ ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/home/deploy/.ssh/id_rsa): id_rsa_aaa

$ ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/home/deploy/.ssh/id_rsa): id_rsa_bbb


$ ssh-add ~/.ssh/id_rsa_aaa

$ ssh-add ~/.ssh/id_rsa_bbb

( ssh-add 명령어 실행이 안될 수도 있습니다. 그럴 경우 $ eval `ssh-agent -s` 명령어 실행 후 실행하면 실행이 됩니다. )

======================================

2. 사용자용 환경설정 파일 편집

:OS 마다 사용자 환경설정 파일은 다르지만 CentOS 기준으로 하겠습니다.(= ~/.bash_profile)


$ vi ~/.bash_profile

# 아래내용을 추가합니다.


eval `ssh-agent -s`

ADDED_KEYS=`ssh-add -l`

if [ ! $(echo $ADDED_KEYS | grep -o -e id_rsa_aaa) ]; then

    ssh-add "$HOME/.ssh/id_rsa_aaa"

fi

if [ ! $(echo $ADDED_KEYS | grep -o -e id_rsa_bbb) ]; then

    ssh-add "$HOME/.ssh/id_rsa_bbb"

fi

======================================

3. SSH 설정

$ vi ~/.ssh/config

# 아래내용을 추가합니다


Host aaa.github.hello.com
     HostName aaa.github.hello.com
     User git
     IdentityFile ~/.ssh/id_rsa_exid
     IdentitiesOnly yes
Host bbb.github.hello.com
     HostName bbb.github.hello.com
     User git
     IdentityFile ~/.ssh/id_rsa_bbb
     IdentitiesOnly yes
======================================

4. Git Repository 에 SSH public key 등록하기

: 프로젝트별로 각각 등록을 진행한다.


$ cat ~/.ssh/id_rsa_aaa.pub

https://github.hello.com/ aaa 레파지토리 > Settings > Deploy Keys > Add deploy key 에 등록


$ cat ~/.ssh/id_rsa_bbb.pub

https://github.hello.com/ bbb 레파지토리 > Settings > Deploy Keys > Add deploy key 에 등록

======================================

5. 잘 되는지 확인하기


beta 서버에서 다음 명령어로 인증이 되는지 확인해봅니다. ( -v 옵션으로 조금더 자세한 정보를 얻을 수도 있습니다. )

$ ssh git@aaa.github.hello.com

$ ssh git@bbb.github.hello.com


다음 명령어를 통해 레파지토리를 당겨 봅니다~

$ git clone git@aaa.github.hello.com:myprojects/aaa.git

$ git clone git@bbb.github.hello.com:myprojects/bbb.git


======================================

6. 기존의 local Repository가 있을때 Remote URL만 바꾸기

- 현재 상태 확인
$ git remote -v

- 바꿔보자
$ git remote set-url origin git@aaa.github.hello.com:myprojects/aaa.git




통계 위젯 (블랙)

4246
720
199892

GoogleAdsenseResponsive

Cluster map