Github SSH key 생성 및 적용하기

많은 Git 서버들은 SSH 공개키로 인증을 합니다. 또한 Github 연결시마다 계정정보를 입력해야 하는 번거로움을 제거해 준다. 이번에 입사한 회사에서도 서버에서 SSH를 사용해서 인증하는 시스템을 가지고 있어서 이 기회에 세팅을하면서 적용방법을 정리해 보았다.

SSH 공개키 생성

일단 공개키를 사용하려면 공개키를 만들어야 한다. 그 전에 공개키가 있는지 확인이 필요하다. 기본적으로 사용자의 SSH키들은 사용자의 ~/.ssh 디텍토리에 저장한다. 디텍토리의 파일을 살펴서 공개키가 있는지 확인 할 수 있다.

1
2
cd ~/.ssh
ls

보통 id_dsaid_rsa라고 되어 있다. 그 중 .pub 파일이 공개키이고 다른 파일은 개인키 입니다.
이 파일이 없거나 .ssh 디텍토리가 없으면 ssh-keygen 프로그램으로 키를 생성하여 준다.

터미널 실행하여 다음 명령어를 실행

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

적은 이메일을 레이블로 사용해서 새 SSH 키를 작성한다는 메세지가 출력됩니다.(아래와 같은 메세지가 나온다면 성공입니다.)

1
> Generating public/private rsa key pair.

SSH Key 저장위치 설정

“키를 저정할 파일을 입력하십시오” 라는 프로프트가 표시되면 Enter를 누르십시오.(기본위치로 지정)

1
> Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

SSH Key 비밀번호 설정

비밀번호 없이 설정할경우 엔터 두번을 눌러주면된다.

1
2
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

SSH Key 등록

생성한 SSH Key를 등록해 봅시다

터미널을 실행하여 아래 명령어를 실행하여 백그라운드에서 ssh-agent를 시작

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

ssh의 config 파일에 아래 text를 입력

1
vi ~/.ssh/config

Host * AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa

아래 명령어를 입력하여 SSH Key 값을 ssh-agent에 추가

1
ssh-add -K ~/.ssh/id_rsa

SSH Key를 Github 계정에 추가

Github 로그인후 우측상단 메뉴에서 Setting을 클릭

좌측의 Personal settings 메뉴 중에 SSH and GPG keys 클릭

New SSH Key를 눌러서 Title과 Key를 입력후 Add SSH Key 버튼을 눌러준다.

Key 에는 아래명령어를 사용해서 .pub 의 공개키를 입력해 준다.

1
cat ~/.ssh/id_rsa.pub

id_rsa.pub 예시
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@agadorlaptop.local

Github SSH key 생성 및 적용하기를 해보았다. Github 연결시 계정정보를 입력해야 하는 번거로움에서 해방돠었다.

SSH 연결 테스트

SSH 를 연결하고 나서 직접 커밋하기 전에 테스트를 해보는 방법을 알아보았다. 연결테스트를 하기 전에 아래 작업들을 모두 완료해야한다.

  • SSH 공개키 생성
  • SSH Key 등록
  • SSH Key를 Github 계정에 추가

먼저 터미널을 엽니다. 그리고 아래 문구를 입력해 줍니다.

1
$ ssh -T git@github.com

그러면 아래와 같은 경고가 경고문구를 보실 수 있습니다.

1
2
3
The authenticity of host 'github.com (IP ADDRESS)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?

또는

1
2
3
The authenticity of host 'github.com (IP ADDRESS)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?

위의 같은 메시지중 하나와 일치하는지 확인 후 yes 를 입력해 줍니다. 아래와 같은 멘트가 나오면 성공입니다.

1
2
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

자세한 내용은 아래 링크를 통해 확인 하실 수 있습니다.
https://help.github.com/en/github/authenticating-to-github/testing-your-ssh-connection

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×