GitHub SSH 연결

Sangyeon·2023년 1월 29일
1

Git

목록 보기
9/12
post-thumbnail

GitHub SSH 연결하는 방법에 대한 포스팅 입니다.

비대칭키 방식에 대한 간단한 설명

비대칭키 방식은 암호화 시 사용하는 키와 복호화 시 사용하는 키가 다른 경우로, 타인에게 절대 노출되어서는 안되는 개인키(private key), 비밀키를 토대로 만든 공개키(public key)가 쌍을 이룬 형태입니다.

공개키로 정보를 암호화하며, 개인키를 가진 사용자만 복호화를 진행할 수 있습니다.

SSH 키 생성

GitHub에 연결할 호스트에 SSH 키를 생성합니다.
(예시에서는 ed25519 알고리즘을 사용합니다.)

$ ssh-keygen -t ed25519 -C "your_email@example.com"

위 명령어를 실행 시, 키를 저장할 디렉터리 위치 + 파일명 입력을 진행해야 합니다. 만약 디폴트로 설정하고 싶은 경우, 별도 입력 없이 Enter 키를 입력하면 됩니다.

그리고 비밀번호(passphrase)를 입력하면 개인키와 공개키가 생성됩니다.

Generating public/private ed25519 key pair.
Enter file in which to save the key (~/.ssh/id_ed25519):  # 키를 저장할 위치 입력
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in ~/.ssh/id_ed25519.  # 개인키 파일
Your public key has been saved in ~/.ssh/id_ed25519.pub.  # 공개키 파일
The key fingerprint is:
SHA256:해시코드값 your_email@example.com
The key's randomart image is:
+--[ED25519 256]--+
|       생략       |
+----[SHA256]-----+

여기서 입력한 비밀번호(passphrase)는 추후 개인키를 사용하여 복호화 시 사용됩니다.

생성한 SSH 키를 ssh-agent에 등록

SSH 키 생성할 시, 디폴트 파일명으로 설정하였다면, ssh-agent에 자동으로 등록되기 때문에 아래 과정을 진행할 필요가 없습니다.

SSH 키 생성 시 비밀번호를 입력하면, 키를 이용해 원격 서버에 접속할 때마다 비밀번호를 물어보는데, ssh-add 명령어를 사용하면 ssh-agent에서 개인키를 caching하기 때문에 처음 한 번만 개인키 비밀번호를 입력하면, 다음부터는 사용자가 또 비밀번호를 입력하지 않아도 됩니다.

$ eval "$(ssh-agent -s)"  # ssh-agent 백그라운드 실행
$ ssh-add <ssh 개인키 경로>

known_hosts 파일 설정

~/.ssh/known_hosts 파일에는 신뢰할 수 있는 서버인지 검증하기 위해 이전에 접속한 서버(호스트)의 공개키가 기록됩니다.

$ ssh -T git@github.com
The authenticity of host 'github.com (IP주소)' can't be established.
ECDSA key fingerprint is SHA256:해시코드.
ECDSA key fingerprint is ~.
Are you sure you want to continue connecting (yes/no)? yes

아래 명령어로 known_hosts 파일에 github 서버의 공개키가 정상 기록되었는지 확인할 수 있습니다.

$ cat ~/.ssh/known_hosts
github.com,IP주소 ecdsa-sha2-nistp256 해시코드값

실습 : Jenkins - GitHub SSH 연결

1. Jenkins 설치된 서버에서 SSH 키 생성

2. Jenkins 관리 > Credentials에서 SSH 개인키 등록

1번 과정에서 생성한 SSH 개인키 & 비밀번호를 등록합니다.

SSH 개인키는 아래 명령어 실행 후 출력 값을 복사붙여넣기 합니다.

$ cat ~/.ssh/id_ed25519
-----BEGIN OPENSSH PRIVATE KEY-----
해시코드값
-----END OPENSSH PRIVATE KEY-----

비밀번호는 SSH 키 생성 당시 입력한 passphrase 값을 입력하면 됩니다.

3. GitHub > Settings > SSH and GPG keys 메뉴에서 SSH 공개키 등록

1번 과정에서 생성한 SSH 공개키를 등록합니다.

SSH 공개키는 아래 명령어 실행 후 출력 값을 복사붙여넣기 합니다.

$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 해시코드 your_email@example.com

Reference

profile
I'm a constant learner.

0개의 댓글