실행환경: Mac
, Terminal
, zsh
이 글에서는 Github에 새로운 저장소를 만들고, 로컬 저장소를 생성하여 연동하는 과정을 설명합니다. 또한, SSH 키를 생성하고 Github에 등록하는 방법도 함께 다룹니다.
🚀 Github 새로운 저장소 만들기
➊ Github 홈페이지 접속: github.com
➋ 사이트 상단 메뉴에서 +
버튼을 누르고 New Repository
를 누릅니다.
➌ 원하는 저장소 이름을 입력합니다. 저는 My-Project
로 입력하였습니다.
➍ 공개(Public
)로 할지 비공개(Private
)로 할지 선택합니다.
➎ 하단에 Create repository
버튼을 눌러서 저장소 생성을 완료합니다.
➏ 저장소 생성을 완료하면 새로 만들어진 저장소 페이지가 보여집니다.
📤 로컬 저장소 생성하고 Github 푸시하기
화면 가운데 다음과 같이 새 저장소를 생성하는 터미널 명령어가 보입니다.
위 명령어를 터미널에서 순서대로 실행해주세요.
echo "# My-Project" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:jh/My-Project.git
git push -u origin main
에러가 나지 않고 업로드가 완료되었다면 여기서 튜토리얼을 종료합니다. 🎉
만약 Github에 내가 사용하는 컴퓨터의 ssh 키
가 등록되어 있지 않다면 다음과 같이 에러가 발생할 수 있습니다.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
에러를 해결하기 위해서 Github에 ssh 키
를 준비하고 등록해줘야 합니다. 다음단계로 넘어가 주세요.
📋 SSH 키 복사하기
먼저 SSH 키가 있는지 확인해 봅니다.
ls ~/.ssh/id_*
id_ed25519.pub
파일이 출력된다면 다음명령으로 공개키를 복사해주세요.
pbcopy < ~/.ssh/id_ed25519.pub
공개키 복사를 완료했으면 🔑 SSH 키 생성하기 단계를 건너뛰고 🔐 SSH 키 등록하기 단계로 넘어가 주세요
id_ed25519.pub
파일이 출력되지 않을 경우 🔑 SSH 키 생성하기 단계에서 키를 생성해 주세요.
🔑 SSH 키 생성하기
Github 프로필
과 일치하는 이메일 주소
로 다음 명령어를 실행해 주세요.
ssh-keygen -t ed25519 -C "jh@gmail.com"
다음과 같이 키를 저장하는 위치를 물어보는 프롬프트에서 그냥 엔터키를 눌러서 넘어갑니다.
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/JH/.ssh/id_ed25519):
마찬가지로 키에대한 암호설정은 물어보는데 그냥 엔터키를 눌러서 넘어갑니다.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
다음과 같이 출력되면 키 생성이 완료된 것입니다.
Your identification has been saved in /Users/JH/.ssh/id_ed25519
Your public key has been saved in /Users/JH/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:----key---- jh@gmail.com
The key's randomart image is:
+--[ED25519 256]--+
|=+o ooo+=B+o |
|o+o..oo.o.B . |
| . . |
| |
+----[SHA256]-----+
백그라운드에서 ssh-agent를 시작합니다.
eval "$(ssh-agent -s)"
먼저 ~/.ssh/config 파일이 기본 위치에 있는지 확인합니다.
open ~/.ssh/config
파일이 없으면 파일을 만들고 파일을 열어주세요.
touch ~/.ssh/config
open ~/.ssh/config
config
파일을 다음과 같이 수정해 주세요.
Host github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
ssh-agent에 SSH 프라이빗 키를 추가하고 키 집합에 암호를 저장합니다. 다른 이름으로 키를 만들거나 이름이 다른 기존 키를 추가하는 경우 명령의 id_ed25519 를 프라이빗 키 파일의 이름으로 바꿉니다.
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
다음 명령으로 공개키를 클립보드에 복사해줍니다.
pbcopy < ~/.ssh/id_ed25519.pub
🔐 SSH 키 등록하기
Github 사이트 상단에 사용자 메뉴를 클릭하고 Settings
를 클릭합니다.
Settings
페이지에서 왼쪽 메뉴 중에 SSH and GPG Keys
를 선택합니다.
New SSH Key
를 클릭합니다.
🔑 SSH 키 생성하기 또는 🔐 SSH 키 등록하기 단계에서 복사한 공개키를 붙혀넣고 Add SSH Key
버튼을 눌러서 키 등록을 완료합니다.
📤 다시 Github 푸시하기
📤 로컬 저장소 생성하고 github 푸시하기단계에서 에러가 발생했던 명령을 다시 수행해주겠습니다.
git push -u origin main
다음과 같이 최초 Github에 접속시 키에대해서 물어본다면 yes
를 입력하고 엔터키를 눌러줍니다.
조금전에 키를 생성하고 등록하였다면 다음과 같이 메시지가 출력될 것입니다.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
이 메시지는 Git 클라이언트가 처음으로 GitHub 서버에 연결할 때 발생하는 것입니다. Git 클라이언트는 SSH를 통해 GitHub 서버에 연결하려고 시도하고 있으며, 해당 서버의 공개 키를 확인하기 위한 안내 메시지입니다.
GitHub 서버 연결을 위해서 yes
를 입력하여 계속 진행하겠습니다.
다음과 같이 메시지가 출력된다면 GitHub로 업로드가 완료된 것입니다.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 229 bytes | 229.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:jh/My-Project.git
* [new branch] main -> main
branch 'main' set up to track 'origin/main'.
GitHub의 생성한 저장소 페이지에 들어가면 다음과 같이 업로드가 완료되어 README.md 파일이 추가되어 있는것을 확인할 수 있습니다.
🌟 결론
이 튜토리얼은 Mac, Terminal, Zsh 환경을 기준으로 작성되었습니다. 다른 환경에서 작업하시는 경우, 명령어 및 설정이 약간 다를 수 있습니다.
지금까지 GitHub에서 새로운 저장소를 만들고 로컬 저장소와 연동해 보았습니다.🎉
감사합니다.😊
댓글