클라우드 서버와 github 레포를 연동해 코드를 관리하려면 ssh 방식을 이용해야 한다.

 

예~전에는 email로 된 id, pw 방식을 이용할 수 있었지만 몇년 전부터 무조건 ssh 방식을 이용하도록 방침이 변경되었다.

 

이번 글에서는 클라우드에서 이용중인 리눅스 서버에 ssh 키를 생성하고 github 계정에 등록해 연동하는 방법을 기록해본다.

 


ssh key 생성

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

 

-t 는 type 옵션이다. 암호화 알고리즘 타입을 의미한다.

-t 옵션을 주지 않으면 디폴트로 rsa가 사용된다. 가장 많이 사용되는 알고리즘이다.

ed25519 알고리즘도 자주 사용된다.

 

-b 는 bit, 즉 키 길이 옵션이다. 일반적으로 2024bit / 4096bit 이 많이 사용된다.

 

 

 

이렇게 키를 생성하면 The key fingerprint is: SHA256 어쩌구가 나온다.

키를 생성할 때 쓰는 알고리즘이 RSA였다면, 공개키 지문을 생성하는 데 이용되는 해시방식은 SHA256이 많이 쓰인다.

공개키 지문은 키를 식별하는 데 쓰이는 고유 식별값이다.

 

 

[root@my-server .ssh]# ls
id_rsa  id_rsa.pub

 

생성된 키는 `~/.ssh` 디렉토리에서 확인할 수 있다.

`id_rsa` 키는 개인키, `id_rsa.pub` 키는 공개키이다.

 

 

 

 


깃허브에 ssh key 등록

 

 

깃허브에 로그인하고 [설정]> [SSH and GPG Keys] 메뉴로 들어간다.

 

https://github.com/settings/keys

 

이 링크를 클릭해도 된다.(로그인 상태여야 함)

 

 

Title에는 내가 알아볼 수 있도록 키에 대한 이름을 붙여주면 된다.

 

Key type은 Authentication Key로 설정

 

Key에는 위에서 발급한 키 중에서 공개키 (~.pub) 를 복사해서 붙여넣으면 된다.

간편하게 키값을 복사하는 방법은 `cat id_rsa.pub` 명령어로 내용을 프린트한 뒤에 드래그 해서 복사해오면 된다.

혹시나 헷갈릴까봐 친절하게 ssh-rsa / ecdsa-sha2-nistp256 / ssh-ed25519 등으로 시작되는 값을 넣으면 된다고 입력란에서 다시 한 번 알려주고 있다. 공개키는 ssh-rsa처럼 사용된 알고리즘의 이름이 처음에 나온다.

 

 

 

이렇게! 마지막에 자신의 이메일 주소까지 잘 들어갔는지 확인한다.

 

 

 

 


깃 레포지토리 클론

 

 

깃 레포지토리를 가져오고자 하는 디렉토리로 이동 또는 생성한다.

 

 

git init

 

원하는 디렉토리에서 git을 사용하기 위해 초기화하는 작업이다.

git은 보통 기본적으로 설치되어 있으므로 따로 설치할 필요 없이, 바로 명령어를 사용할 수 있다.

 

 

 

 

 

깃허브 레포지토리에서 [<> Code] 버튼을 누르면 해당 레포의 SSH 주소값이 나온다.

이 값을 복사해서 클라우드 서버에 클론해온다.

 

git clone git@github.com:<그룹명>/<레포명>.git

 

git clone 뒤에 복사한 값을 그대로 복붙하면 된다.

 

 

The authenticity of host 'github.com (20.200.245.247)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

 

이런 문구가 뜨면, yes를 입력해준다.

 

github가 아직 서버의 known hosts에 등록되어있지 않아서 나오는 문구이다.

yes를 입력하면 자동으로 등록해주고, 클론이 끝난다.

 

 

 

 

이제 완료!

+ Recent posts