์ค๋์ SSH๋ฅผ ์ด์ฉํด GitHub ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก (clone)ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํ๊ฒ ์ต๋๋คโญ GitHub/GitLab์ ์ฌ์ฉํ๋ค๋ณด๋ฉด ๋งค๋ฒ ์๊ธฐ๋ ์ธ์ฆ ๋ฌธ์ !!! ๋๋ฌด ๋จธ๋ฆฌ ์ํ์์ฃ ...! ๊ทธ๋์ ์ ๋ ์ด์ SSH๋ฅผ ์ด์ฉํด์ ๋ณด์๋ ์ฑ๊ธฐ๊ณ , ํ๋ฒ์ ์ธ์ฆ๋ ํ ์ ์๋ ํธ์์ฑ๋ ์ฑ๊ฒจ๊ฐ๋ ค๊ณ ์ ๐
SSH๋ฅผ ์ด์ฉํด GitHub ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ํ๋ฉด ๋งค๋ฒ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ๋ ฅํ์ง ์์๋ ๋ฉ๋๋ค. ํ ๋ฒ SSH ํค๋ฅผ ์ค์ ํ๊ณ ๋๋ฉด, ์ดํ์๋ ์๋์ผ๋ก ์ธ์ฆ์ด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ Git ์์ ์ ๋ณด๋ค ํธ๋ฆฌํ๊ฒ ์ํํ ์ ์์ต๋๋ค. ์ด๋ฒ ๋ธ๋ก๊ทธ ํฌ์คํธ์์๋ SSH ํค๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ GitHub์ ๋ฑ๋กํ ํ, ์ด๋ฅผ ์ด์ฉํด ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ํ๋ ์ ์ฒด ๊ณผ์ ์ ๋ค๋ฃน๋๋ค. Ubuntu์ Windows ํ๊ฒฝ์์์ SSH ํค๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ ๊ฐ๊ฐ ์ค๋ช ํฉ๋๋ค.
SSH ํค๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด์ ์ต์ ๋ค์ ๋ํด ๋จผ์ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
ssh-keygen
: SSH ํค๋ฅผ ์์ฑํ๋ ๋ช
๋ น์ด์
๋๋ค.-t rsa
: ํค ํ์
์ RSA๋ก ์ง์ ํฉ๋๋ค. RSA๋ ํ์ฌ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๊ณต๊ฐํค ์ํธํ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์
๋๋ค.-b 4096
: ํค์ ๋นํธ ์๋ฅผ ์ง์ ํฉ๋๋ค. 4096 ๋นํธ๋ ๋งค์ฐ ๊ฐ๋ ฅํ ๋ณด์์ ์ ๊ณตํฉ๋๋ค.-C "your_email@example.com"
: ํค์ ์ฃผ์(Comment)์ ์ถ๊ฐํฉ๋๋ค. ๋ณดํต ์์ ์ ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.SSH ํค ์์ฑ ๋ช ๋ น์ด ์คํ
ํฐ๋ฏธ๋์ ์ด๊ณ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํฉ๋๋ค. ์ด ๋ช ๋ น์ด๋ ์๋ก์ด SSH ํค ์์ ์์ฑํฉ๋๋ค.
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/id_rsa_github
์ฌ๊ธฐ์ -f ~/.ssh/id_rsa_github
๋ ์์ฑ๋ ํค ํ์ผ์ ์ด๋ฆ์ id_rsa_github
๋ก ์ง์ ํฉ๋๋ค.
๋น๋ฐ๋ฒํธ ์ ๋ ฅ
ํ๋กฌํํธ๊ฐ ๋ํ๋๋ฉด ํ์์ ๋ฐ๋ผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํ์ง ์์ผ๋ ค๋ฉด Enter ํค๋ฅผ ๋๋ฆ ๋๋ค.
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
์์ฑ๋ SSH ํค ํ์ธ
๋ค์ ๋ช ๋ น์ด๋ก SSH ํค๋ฅผ ํ์ธํฉ๋๋ค.
cat ~/.ssh/id_rsa_github.pub
Git Bash ์ค์น ๋ฐ ์คํ
Windows์์๋ Git Bash๋ฅผ ์ด์ฉํด SSH ํค๋ฅผ ์์ฑํฉ๋๋ค. Git Bash๋ฅผ ์คํํฉ๋๋ค.
SSH ํค ์์ฑ ๋ช ๋ น์ด ์คํ
Git Bash์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํฉ๋๋ค.
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/id_rsa
๋น๋ฐ๋ฒํธ ์ ๋ ฅ
ํ๋กฌํํธ๊ฐ ๋ํ๋๋ฉด ํ์์ ๋ฐ๋ผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํ์ง ์์ผ๋ ค๋ฉด Enter ํค๋ฅผ ๋๋ฆ ๋๋ค.
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
์์ฑ๋ SSH ํค ํ์ธ
๋ค์ ๋ช ๋ น์ด๋ก SSH ํค๋ฅผ ํ์ธํฉ๋๋ค.
cat ~/.ssh/id_rsa.pub
GitHub ๋ก๊ทธ์ธ ๋ฐ ์ค์ ํ์ด์ง ์ด๋
GitHub์ ๋ก๊ทธ์ธํ ํ, ์ค๋ฅธ์ชฝ ์๋จ ํ๋กํ ์์ด์ฝ์ ํด๋ฆญํ๊ณ Settings
๋ฅผ ์ ํํฉ๋๋ค.
SSH ๋ฐ GPG ํค ๋ฉ๋ด ์ ํ
์ผ์ชฝ ๋ฉ๋ด์์ SSH and GPG keys
๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ SSH ํค ์ถ๊ฐ
New SSH key
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. Title์๋ ํค์ ์ด๋ฆ์ ์
๋ ฅํ๊ณ , Key์๋ ์์ ์์ฑํ SSH ํค๋ฅผ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ์ต๋๋ค.
# Ubuntu ๋๋ Windows์์ ์คํ
cat ~/.ssh/id_rsa.pub
ํค ๋ด์ฉ์ ๋ณต์ฌํ ํ GitHub์ Key ํ๋์ ๋ถ์ฌ๋ฃ๊ณ Add SSH key
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
๋ ํฌ์งํ ๋ฆฌ URL ๋ณต์ฌ
ํด๋ก ํ๊ณ ์ ํ๋ GitHub ๋ ํฌ์งํ ๋ฆฌ ํ์ด์ง๋ก ์ด๋ํ์ฌ Code
๋ฒํผ์ ํด๋ฆญํ ํ SSH
๋ฅผ ์ ํํ๊ณ URL์ ๋ณต์ฌํฉ๋๋ค.
๋ ํฌ์งํ ๋ฆฌ ํด๋ก ๋ช ๋ น์ด ์คํ
ํฐ๋ฏธ๋(Git Bash)์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ํฉ๋๋ค.
git clone git@github.com:username/repository.git
username
๊ณผ repository
๋ ๋ณต์ฌํ URL์ ๋ง๊ฒ ๋ณ๊ฒฝํฉ๋๋ค.
์ด์ SSH ํค๋ฅผ ์์ฑํ๊ณ GitHub์ ๋ฑ๋กํ ํ, SSH๋ฅผ ์ด์ฉํด ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ํ๋ ๋ฐฉ๋ฒ์ ์ตํ์ต๋๋ค. ์ด ๊ณผ์ ์ ํตํด ํ ๋ฒ ์ค์ ํ์๋ ๋งค๋ฒ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ๋ ฅํ ํ์ ์์ด GitHub์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์์ ํจ์จ์ ํฌ๊ฒ ๋์ผ ์ ์์ต๋๋ค.
SSH๋ฅผ ์ด์ฉํ ์ ๊ทผ์ ๋ณด์์ฑ์ด ๋๊ณ ํธ๋ฆฌํ๋ฏ๋ก, ํนํ ๊ฐ์ธ ์ปดํจํฐ์์ ์์ ํ ๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ์ถ๊ฐ์ ์ผ๋ก Credential Helper๋ฅผ ์ฌ์ฉํ์ฌ HTTP(S) ๋ฐฉ์์ผ๋ก ์ ๊ทผํ ๋๋ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ค๋๋ ์ฝ์ด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค! ๋ค์ ํฌ์คํธ๋ ์ ์์ Credential Helper
์ ๋ํด์ ์ค๋ช
ํ๋ ๊ธ๋ก ์ฐพ์๋ต๊ฒ ์ต๋๋ค!