개요

보통 Github에서 소스를 클로닝(Cloning) 할 때, HTTP 연결을 할겁니다. 일반적으로 별문제 없지만, 비번을 바꾸거나 할 때 처럼 인증 정보가 변경 되면, 재로그인을 하거나 Windows 자격 증명에서 Github 자격 증명을 갱신해주어야 하는 번거로움이 생깁니다. 특히, 저 같은 경우 회사 보안 정책상 주기적으로 비번을 바꾸기 때문에 인증을 매번 갱신하는게 은근 스트레스 였습니다. 

 

 

하지만, SSH키를 이용해서 Github와 연동하면, 비번을 바꾸더라도 인증 정보를 갱신할 필요가 없다는 사실을 알게 되었습니다. 

 

SSH키 생성

SSH 연결을 위해서는 먼저 SSH키를 생성해야 합니다. git-bash를 실행하여, 아래와 같이 명령어를 입력해줍니다.

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

그러면 아래와 같이 키 파일 이름을 지정하라고 나오는데, 특정 이름을 넣어주거나, 그냥 무시하고 엔터를 입력해도 됩니다. 무시했을 경우 id_rsa 라는 파일로 키 파일이 생성됩니다.

>Enter a file in which to save the key (/c/Users/you/.ssh/id_rsa):

이후 passphrase를 입력하라는 문구가 나오지만 이것도 그냥 무시하고 엔터를 입력해주어도 됩니다.

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

위 과정을 수행하고 나면 c:/Users/you/.ssh 폴더 아래에 id_rsa와 id_rsa.pub 파일이 생성 된것을 확인할 수 있습니다. id_rsa.pub 파일을 노트 패드로 열어보면, 안에 ssh-rsa 키가 생성 된것을 확인할 수 있습니다.

 

ssh-agent에 SSH키 추가

생성된 SSH 키를 사용하기 위해서는 ssh-agent에 생성한 SSH 키를 추가 해주어야 해야 합니다. 아래와 같이 ssh-agent를 실행시켜 줍니다.

$ eval $(ssh-agent -s)
> Agent pid 59566

ssh-agent가 실행 됐다는 표시로 ssh-agent의 pid가 출력됩니다. pid는 그 때 마다 값이 다르게 나옵니다. 이제 위에서 생성한 ssh 키를 아래와 같이 추가 해줍니다.

$ ssh-add ~/.ssh/id_rsa

 

github에 ssh키 등록하기

ssh-agent에 ssh키를 등록 했다면, 이제 한 가지만 남아 있습니다. 해당 ssh키를 github에 등록하는 것입니다. 계정 Settings에서 SSH and GPG Keys페이지로 들어가, New SSH Key 버튼을 눌러 위에서 생성한 .pub 파일 안에 있는 SSH 키값을 복사-붙여넣기 해줍니다.

 

Clone with SSH

이제 모든 준비가 끝났습니다. 프로젝트를 클로닝 할 때, HTTPS가 아닌 SSH 주소를 이용하여 클로닝을 해주면, 아이디/비번을 통한 계정 인증 없이 자동으로 SSH 키로 해당 프로젝트를 Pull/Push를 할 수 있게 됩니다.

 

+ Recent posts