달나라 노트

11. SSH key (github, git clone, git ssh key, ssh key gen) 본문

Github

11. SSH key (github, git clone, git ssh key, ssh key gen)

CosmosProject 2021. 1. 15. 22:50
728x90
반응형

 

 

 

로그인 없이 원격 저장소에 접근하기

우리는 이제까지 HTTPS를 이용한 Clone을 해왔습니다.
이 방법은 간단하지만 push를 하거나 원격 저장소에 접근할 때 마다 id, password를 입력해야한다는 귀찮음이 있습니다.

이를 위해 SSH(Secure Shell)라는 key가 존재합니다.

SSH key를 이용하면 매번 로그인할 필요가 사라집니다.

 

 

 

 


 

 

 

 

SSH key 생성

1. ssh-keygen
운영체제 상관없이 git bash에서 위 코드를 입력합니다.
무슨 내용과 어떤 경로가 뜨는데 이 경로를 잘 보고 계속 엔터를 칩니다.

 

 

Enter file in which to save the key (/Users/user_name/.ssh/id_rsa) : 

위 질문은 ssh key를 설치하려는 컴퓨터 내의 경로를 입력하라는 질문입니다.

기본 경로(/Users/user_name/.ssh/id_rsa)에 설치할 것이므로 그냥 엔터를 쳐줍니다.

 

 

Enter passphrase (empth for no passphrase):

Enter same passphrase again:

나중에 인증용으로 사용할 pass phrase를 입력하라는 질문입니다.

원하는대로 입력하셔도 좋으나 굳이 pass phrase를 사용하고 싶지 않다면 그냥 엔터를 쳐줍시다.



그러면 아래와 같은 내용이 출력됩니다.



위에서 말했던 어떤 경로가 뜬다는게 /c/User/Robin/.ssh/id_rsa입니다.

이것으로 ssh key가 생성되었습니다.
SSH key는 기계적으로 아주 복잡한 비밀번호를 생성하고 위에서 출력된 경로에 저장을 해놓습니다.
보면 Home directory(이 컴퓨터의 경우 /c/User/Robin)에 .ssh라는 디렉토리가 생겼으며 그 안에 id_rsa라는 파일이 생겼음을 알 수 있습니다.

2. cd ~/.ssh
물결표시는 이 컴퓨터의 Home Directory를 의미합니다.
따라서 Home Directory에 있는 .ssh 디렉토리로 이동하라는 의미입니다.

3. ls -al
위 명령어를 이용해 .ssh 디렉토리에 있는 파일들을 확인해보면 아래와 같습니다.

total 17
drwxr-xr-x 1 ~~~ 197121 0 3월 21 20:33 ./
drwxr-xr-x 1 ~~~ 197121 0 3월 21 20:33 ../
-rw-r--r-- 1 ~~~ 197121 2610 3월 21 20:33 id_rsa
-rw-r--r-- 1 ~~~ 197121 575 3월 21 20:33 id_rsa.pub

그러면 위처럼 id_rsa와 id_rsa.pub이라는 두 개의 파일이 생김을 알 수 있습니다.

id_rsa : private key
id_rsa.pub : public key

id_rsa는 비밀스로운 비밀번호가 저장된 파일입니다.
id_rsa.pub은 비밀이 아닌 공개된 정보가 들어있는 파일입니다.

SSH key를 이용한 통신은 다음과 같이 이뤄집니다.
(1) 접속하고자 하는 서버 컴퓨터의 일정한 디렉토리에 id_rsa.pub이라는 파일을 복사해놓습니다. (즉, 서버 컴퓨터에는 public key의 정보가 담겨있습니다.)
(2) 나중에 우리 컴퓨터가 서버 컴퓨터에 접속하려 할 때 서버 컴퓨터는 우리 컴퓨터에 id_rsa.pub 파일이 있는 컴퓨터라는 것을 인식하고 로컬 컴퓨터가 서버 컴퓨터에 자동 로그인을 하게 해줍니다.

private key는 절대 노출하면 안됩니다.

 

 

 

 


 

 

 

 

SSH key를 GIT HUB에 등록하기

1. cat id_rsa.pub
id_rsa.pub 파일을 읽고 그 내용을 아주 정교하게 복사합니다.

2. git hub setting
git hub 사이트로 이동하여 우측 상단에 내 정보를 클릭하면 나오는 setting 메뉴로 이동합니다.

3. SSH and GPG keys
그러면 위와 같은 이름의 메뉴가 보이는데 여기로 이동합니다.
여기서 git hub에 나의 public key를 등록할 수 있습니다.

4. New SSH key
위 이름의 버튼을 클릭하면 어떤 창이 뜹니다.
Title에다가 지역 저장소를 나타내는 이름을 적습니다.
그리고 Key부분에 아까 복사했던 id_rsa.pub 파일의 내용을 붙여넣기합니다.



5. Add SSH key
이제 위 버튼을 클릭하여 SSH 키를 생성합니다.

이제 public key를 github에 저장했습니다.
public key는 로컬 저장소에 있던 id_rsa 파일과 짝꿍입니다.
id_rsa라는 private key를 가진 사람은 id_rsa.pub이라는 public key를 가진 컴퓨터에 접속할 수 있다는 규칙이 생긴 것이죠.

SSH key가 잘 확인됐는지 확인하기 위해 새로운 git hub repository를 생성합니다.

그러면 아래와 같은 주소가 뜰텐데 HTTPS가 아닌 SSH 주소를 클릭합니다.



6. git clone (github ssh) git_ssh
git bash에서 위와같은 명령어를 입력합시다.
git_ssh라는 디렉토리를 만들고 그 디렉토리에 위 git hub를 clone하겠다는 뜻입니다.
위 명령어를 입력하면 connecting할거냐는 질문이 나올텐데 yes를 입력하고 엔터를 쳐줍니다.

7. cd git_ssh
ssh키를 이용해 clone된 디렉토리로 이동합니다.

8. vim f1.txt
f1.txt 파일을 수정합니다.

9. git add f1.txt
f1.txt 파일을 stage에 올립니다.

10. git commit -m '1'
1이라는 commit message와 함께 commit합니다.

11. git push
이때 push가 잘 진행된다면 private key, public key 쌍을 이용하여 자동 로그인을 통해 내 정보를 git hub에 업데이트하게 됩니다.

 

 

 

 

728x90
반응형

'Github' 카테고리의 다른 글

13. Branch 생성  (0) 2021.01.15
12. Branch  (0) 2021.01.15
10. 하나의 원격 저장소, 여러 개의 로컬 저장소 (git pull, git push)  (0) 2021.01.15
9. GIT HUB 원격 저장소 만들기  (0) 2021.01.15
8. GIT HUB 알아보기  (0) 2021.01.15
Comments