안녕하세요. 카이랏입니다.
이번에는 git private repository를 가져오는 방법을 살펴보고자 합니다.
1. 이유
git에서 public으로 설정되지 않고 private으로 설정된 repository들은 리눅스 상에서 그냥 다운로드가 불가능합니다.
과거에는 아이디와 비번을 입력하도록 하였으나 현재는 그것이 가능하지 않고 key를 이용하도록 정책이 변경되었습니다.
따라서 ssh key를 만들어서 private repository를 받을 수 있는 방법을 알아보면 좋겠습니다.
2. 방법
1) 아래의 명령을 입력합니다. 물론 이메일은 개인의 것을 넣으시면 됩니다.
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
2) 아래와 같은 메시지가 나온다. 여기서 엔터를 치면 괄호 안에 있는 위치로 키가 저장된다. 위치를 입력하면 입력된 위치로 저장됩니다.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):
3) 아래의 "Enter passphrase ..." 은 암호를 입력하라는 내용입니다. 암호를 입력하면 된다. 입력하지 않으면 암호를 사용하지 않습니다.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
4) 모든 절차가 마무리되면 키가 저장된 위치로 이동하여 키 값을 읽습니다.
cd ~/.ssh/
5) 파일을 보면 아래와 같은 내용이 나옵니다.
ubuntu:~/.ssh $ ll
total 20
drwxr-xr-x 2 ubuntu ubuntu 4096 May 6 07:38 ./
drwxr-xr-x 12 ubuntu ubuntu 4096 May 6 07:20 ../
-rw------- 1 ubuntu ubuntu 991 May 6 05:28 authorized_keys
-rw------- 1 ubuntu ubuntu 3326 May 6 07:38 id_rsa
-rw-r--r-- 1 ubuntu ubuntu 746 May 6 07:38 id_rsa.pub
ubuntu:~/.ssh $
여기서 vi 또는 emec로 id_rsa.pub 파일을 열고 내용을 모두 복사합니다.
6) 이 후 github.com 에 들어가서 Settings 를 클릭합니다.
7) 아래의 화면에서 SSH and GPG keys 로 들어간다. 그 후 New SSH key 를 누릅니다.
8) 아래의 내용에 Key 항목에 아까 id_rsa.pub 파일의 내용을 복사한 내용을 붙여넣습니다. 그리고 Add SSH key 버튼을 누릅니다.
9) 이 후 모바일 앱으로 인증하라는 내용이 나오면 모바일 앱에서 확인하시면 됩니다. 아래는 최종화면입니다.
10) 이 다음 실제 git 에서 private repository를 다운 받으면 됩니다. 먼저 SSH를 통해서 다운로드할 수 있게 링크를 복사합니다.
11) 개발에 적당한 폴더로 이동한 후 아래의 내용을 입력을 하고 실행합니다.
git clone git@github.com:[사용자아이디]/[프로젝트이름].git
12) 이 후 아래에서 yes 를 입력합니다.
(myenv) ubuntu:~/environment $ git clone git@github.com:newsight78/ProjectPython
Cloning into 'ProjectPython'...
The authenticity of host 'github.com (140.82.121.3)' can't be established.
ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
Are you sure you want to continue connecting (yes/no)?
13) 여기서 아까 키를 만들면서 작성한 암호를 입력합니다.
(myenv) ubuntu:~/environment $ git clone git@github.com:newsight78/ProjectPython
Cloning into 'ProjectPython'...
The authenticity of host 'github.com (140.82.121.3)' can't be established.
ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,140.82.121.3' (ECDSA) to the list of known hosts.
Enter passphrase for key '/home/ubuntu/.ssh/id_rsa':
14) 암호를 입력한 후에 아래와 같이 다운로드가 됩니다.
(myenv) ubuntu:~/environment $ git clone git@github.com:newsight78/ProjectPython
Cloning into 'ProjectPython'...
Enter passphrase for key '/home/ubuntu/.ssh/id_rsa':
remote: Enumerating objects: 580, done.
remote: Counting objects: 100% (314/314), done.
remote: Compressing objects: 100% (187/187), done.
remote: Total 580 (delta 190), reused 238 (delta 122), pack-reused 266
Receiving objects: 100% (580/580), 63.65 MiB | 15.37 MiB/s, done.
Resolving deltas: 100% (324/324), done.
(myenv) ubuntu:~/environment $
3. 마무리
최종 프로젝트 폴더에 들어가면 정상적으로 다운된 것을 확인할 수 있습니다.
여기서 다운로드 받은 프로젝트를 venv를 통해 가상환경에서 작업을 하는 것이 좋다고 생각합니다.
'Tech' 카테고리의 다른 글
youTube-dl 로 mp3 파일 다운로드 시 파일명 문제 해결 (0) | 2024.01.27 |
---|---|
AWS Cloud9 IDE의 python venv 환경에서 디버깅(debugging)하는 방법 (0) | 2023.05.06 |
AWS Cloud9 IDE에서 python 파일 디버깅(debugging) 하는 방법 (0) | 2023.05.06 |
AWS Cloud9 IDE에서 Python3.9 설치하기 (0) | 2023.05.06 |
ChatGPT와 Bard의 간단한 비교 (0) | 2023.04.25 |