일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- PostgreSQL
- SQL
- Tkinter
- matplotlib
- string
- Python
- Google Spreadsheet
- PySpark
- Google Excel
- 파이썬
- Redshift
- gas
- array
- list
- PANDAS
- GIT
- numpy
- c#
- Java
- Mac
- hive
- Github
- django
- Apache
- dataframe
- google apps script
- Kotlin
- math
- Excel
- Today
- Total
달나라 노트
11. SSH key (github, git clone, git ssh key, ssh key gen) 본문
로그인 없이 원격 저장소에 접근하기
우리는 이제까지 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에 업데이트하게 됩니다.
'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 |