Github SSH Setting

  • update date: 2020.08.14
  • environment: linux 18.04

1. generate ssh-key

Github에 ssh key를 등록하기 위해서는 우선 사용하고자 하는 환경에서 ssh key를 생성해야 한다. ~/.ssh 디렉토리에서 다음 명령어를 실행하여

$ ssh-keygen

id_ras, id_ras.pub 두 파일을 생성한다. 이때 id_ras는 외부로 공개되어선 안 되며 id_ras.pub만을 복사하여 사용해야 한다. 생성 과정에서 사용자가 임의의 이름으로 생성하는 것도 가능하다.

2. Add new ssh -key

Github에 로그인 한 후 settings/SSH and GPG keys에 들어가면 다음과 같은 페이지가 나온다.

여기서 New SSH Key 버튼을 클릭하면 아래 페이지로 이동한다.

Title에는 key를 지칭하는 이름을 임의로 설정해주면 되고 Key에는 id_ras.pub 파일에 저장된 key 값을 그대로 복사/붙여넣기 하면 된다. Add버튼을 누르면 등록이 완료되며 이후부터는 SSH 방식으로도 clone pull push 등이 가능해진다.

3. SSH Key Mode Setting

Private Key의 Mode는 600, Public Key의 Mode는 644로 맞춰져 있어야 한다. 보다 구체적으로 ls -al 명령어로 확인했을 때 다음과 같이 Super User만 쓰기 권한을 가지고 있어야 한다.

-rw-------   1 ***  staff  2622 Oct 13 15:03 git_key
-rw-r--r--   1 ***  staff   587 Oct 13 15:03 git_key.pub

변경하는 방법은 다음과 같다.

$ chmod 600 git_key
$ chmod 644 git_key.pub

4. Add ssh key

마지막으로 다음 명령어를 통해 생성한 SSH Private Key를 추가해 준다.

$ ssh-add ~/.ssh/<key_name>

다음과 같은 Error가 발생하면 ssh-agent 를 실행하지 않았기 때문이다.

Could not open a connection to your authentication agent.

아래 명령어로 실행해주면 된다.

eval `ssh-agent -s`

다음과 같은 Error가 발생하면 Private Key의 Mode 설정을 잘못했거나(644) Public Key를 추가했기 때문이다.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@