์ค๋์ SSH๋ฅผ ์ด์ฉํด GitHub ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก (clone)ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํ๊ฒ ์ต๋๋คโญ GitHub/GitLab์ ์ฌ์ฉํ๋ค๋ณด๋ฉด ๋งค๋ฒ ์๊ธฐ๋ ์ธ์ฆ ๋ฌธ์ !!! ๋๋ฌด ๋จธ๋ฆฌ ์ํ์์ฃ ...! ๊ทธ๋์ ์ ๋ ์ด์ SSH๋ฅผ ์ด์ฉํด์ ๋ณด์๋ ์ฑ๊ธฐ๊ณ , ํ๋ฒ์ ์ธ์ฆ๋ ํ ์ ์๋ ํธ์์ฑ๋ ์ฑ๊ฒจ๊ฐ๋ ค๊ณ ์ ๐
SSH๋ฅผ ์ด์ฉํด GitHub ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ํ๋ฉด ๋งค๋ฒ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ๋ ฅํ์ง ์์๋ ๋ฉ๋๋ค. ํ ๋ฒ SSH ํค๋ฅผ ์ค์ ํ๊ณ ๋๋ฉด, ์ดํ์๋ ์๋์ผ๋ก ์ธ์ฆ์ด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ Git ์์ ์ ๋ณด๋ค ํธ๋ฆฌํ๊ฒ ์ํํ ์ ์์ต๋๋ค. ์ด๋ฒ ๋ธ๋ก๊ทธ ํฌ์คํธ์์๋ SSH ํค๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ GitHub์ ๋ฑ๋กํ ํ, ์ด๋ฅผ ์ด์ฉํด ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ํ๋ ์ ์ฒด ๊ณผ์ ์ ๋ค๋ฃน๋๋ค.
SSH ํค๋ฅผ ์์ฑํ ํ GitHub์ ๋ฑ๋กํ๋ฉด ๋งค๋ฒ ์ธ์ฆ ์ ๋ณด๋ฅผ ์
๋ ฅํ์ง ์์๋ ๋ฉ๋๋ค. ์๋๋ Windows
์ Ubuntu
ํ๊ฒฝ์์์ SSH ํค ์์ฑ ๊ณผ์ ์ ์ค๋ช
ํฉ๋๋ค.
SSH ํค๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด์ ์ต์ ๋ค์ ๋ํด ๋จผ์ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
ssh-keygen
: SSH ํค๋ฅผ ์์ฑํ๋ ๋ช
๋ น์ด์
๋๋ค.
-t rsa
: ํค ํ์
์ RSA๋ก ์ง์ ํฉ๋๋ค.
-b 4096
: ํค์ ๋นํธ ์๋ฅผ ์ง์ ํฉ๋๋ค. 4096 ๋นํธ๋ ๊ฐ๋ ฅํ ๋ณด์์ ์ ๊ณตํฉ๋๋ค.
-C \"your_email@example.com\"
: ํค์ ์ฃผ์(Comment)์ ์ถ๊ฐํฉ๋๋ค.
Git Bash ์คํ:
SSH ํค ์์ฑ ๋ช ๋ น์ด ์คํ:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/id_rsa_github
-f ~/.ssh/id_rsa_github
: ํค ํ์ผ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค.
์์
ssh-keygen -t rsa -b 4096 -C "jasuchung@gmail.com" -f ~/.ssh/id_rsa_github
๐ค ์ด? Powershell๋ก ํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ ๊ฒ ๊ฐ์์!! ๋ง์ฝ Powershell๋ก ์คํํ๊ณ ์ถ์ ๊ฒฝ์ฐ,
- PowerShell์์ ๋ฐ์ํ ์ค๋ฅ๋
~/.ssh/id_rsa_github
๊ฒฝ๋ก๋ฅผ Windows PowerShell์ด ์ดํดํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋๋ค.- Windows์์๋
~
๊ฐ ์ฌ์ฉ์์ ํ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ํ๋ด์ง๋ง, PowerShell์์๋ ์ด๋ฅผ ์ง์ ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ฒฝ๋ก๋ฅผ Windows์ ์ ๋ ๊ฒฝ๋ก๋ก ์ง์ ํด์ผ ํฉ๋๋ค.
- SSH ํค ์์ฑ ์ ๊ฒฝ๋ก๋ฅผ ์์ :
- ์๋์ ๊ฐ์ด
~/.ssh
๋์ Windows์ ํ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ช ์์ ์ผ๋ก ์ง์ ํฉ๋๋ค:ssh-keygen -t rsa -b 4096 -C "jasuchung@gmail.com" -f $HOME\\.ssh\\id_rsa_github
$HOME
์ PowerShell์์ ์ฌ์ฉ์์ ํ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ํ๋ ๋๋ค.- Windows์์๋ ํ ๋๋ ํ ๋ฆฌ๊ฐ ๋ณดํต
C:\\Users\\<์ฌ์ฉ์ ์ด๋ฆ>
๋ก ์ค์ ๋ฉ๋๋ค.~/.ssh
๋๋ ํ ๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ ๋๋ ํ ๋ฆฌ ์์ฑ:
~/.ssh
๋๋ ํ ๋ฆฌ๊ฐ ์กด์ฌํ์ง ์์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. PowerShell์์ ์๋ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํ์ธ์:mkdir $HOME\\.ssh
- ์์ฑ๋ ํค ํ์ธ:
- ํค ์์ฑ ํ, ๊ณต๊ฐ ํค๋ฅผ ํ์ธํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ธ์:
cat $HOME\\.ssh\\id_rsa_github.pub
์์ฑ๋ SSH ํค ํ์ธ:
cat ~/.ssh/id_rsa_github.pub
ํฐ๋ฏธ๋ ์คํ:
SSH ํค ์์ฑ ๋ช ๋ น์ด ์คํ:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/id_rsa_github
-f ~/.ssh/id_rsa_github
: ํค ํ์ผ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค.
์์
ssh-keygen -t rsa -b 4096 -C "jasuchung@gmail.com" -f ~/.ssh/id_rsa_github
๋น๋ฐ๋ฒํธ ์ ๋ ฅ:
์์ฑ๋ SSH ํค ํ์ธ:
cat ~/.ssh/id_rsa_github.pub
# Ubuntu ๋๋ Windows์์ ์คํ
cat ~/.ssh/id_rsa_github.pub
๋ ํฌ์งํ ๋ฆฌ URL ๋ณต์ฌ:
๋ ํฌ์งํ ๋ฆฌ ํด๋ก ๋ช ๋ น์ด ์คํ:
git clone git@github.com:username/repository.git
username
๊ณผ repository
๋ ์ค์ ๋ณต์ฌํ URL์ ๋ง๊ฒ ๋ณ๊ฒฝํฉ๋๋ค.๐คฆโโ๏ธ ๊ฐ๋ ์ฌ์ฉํ๋ค ๋ณด๋ฉด, ๊ฐ์ธ ํค์ ๊ณต๊ฐ ํค๊ฐ ์๋ก ๋ค๋ฅด๋ค๋ ์๋ฌ์ ๋ง์ฃผ์น๊ฒ ๋ ๋๊ฐ ์์ต๋๋ค.
์ด๋ด๋๋ ๊ฐ์ธ ํค์ ๊ณต๊ฐ ํค๊ฐ ์๋ก ๋ค๋ฅด๋ค๋ฉด, ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์๋ก์ด ํค ์์ ์์ฑํ๊ณ , ๊ณต๊ฐ ํค๋ฅผ ๋ค์ ๋ฑ๋กํด์ผ ํฉ๋๋ค.
์๋ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์:
์ SSH ํค ์ ์์ฑ
์๋ก์ด SSH ํค ์์ ์์ฑํฉ๋๋ค. ๊ธฐ์กด ํค ํ์ผ์ด ์ด๋ฏธ ์กด์ฌํ๋ค๋ฉด ์ด๋ฆ์ ๋ค๋ฅด๊ฒ ์ค์ ํ์ธ์.
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
์ด๋ฉ์ผ์ GitHub ๊ณ์ ์ ์ฐ๊ฒฐ๋ ์ด๋ฉ์ผ์ ์ฌ์ฉํฉ๋๋ค.
๊ธฐ๋ณธ ์ ์ฅ ๊ฒฝ๋ก(~/.ssh/id_rsa
)๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ ๊ฒฝ์ฐ ๊ธฐ์กด ํ์ผ์ด ๋ฎ์ด์ฐ์ฌ์ง ์ ์์ผ๋, ์๋ก์ด ์ด๋ฆ์ ์ง์ ํฉ๋๋ค(e.g., ~/.ssh/id_rsa_new
).
์:
Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/id_rsa_new
์๋ก ์์ฑ๋ ๊ณต๊ฐ ํค ํ์ธ
์์ฑ๋ ๊ณต๊ฐ ํค๋ฅผ ์ถ๋ ฅํฉ๋๋ค:
cat ~/.ssh/id_rsa_new.pub
์ถ๋ ฅ๋ ํค๋ฅผ ๋ณต์ฌํฉ๋๋ค.
GitHub์ ์ ๊ณต๊ฐ ํค ๋ฑ๋ก
GitHub ์น์ฌ์ดํธ์์ ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฆ ๋๋ค:
์ ํค๋ฅผ SSH ์์ด์ ํธ์ ์ถ๊ฐ
ssh-add ~/.ssh/id_rsa_new
ssh-add -l
๐ป SSH ์์ด์ ํธ(Agent) ์ฌ์ฉํ๊ธฐ
SSH ์์ด์ ํธ๋ SSH ํค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ์ฌ ์ธ์ฆ ๊ณผ์ ์ ๊ฐ์ํํฉ๋๋ค.
GitHub์์ ์ฐ๊ฒฐ์ ์ํด ์์ด์ ํธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- SSH ์์ด์ ํธ ์์:
eval "$(ssh-agent -s)"
- ํค ์ถ๊ฐ: ์์ฑํ ํค๋ฅผ SSH ์์ด์ ํธ์ ์ถ๊ฐํฉ๋๋ค:
ssh-add ~/.ssh/id_rsa_github
- ์ ์ฅ๋ ํค ํ์ธ: ์ ์ฅ๋ ํค ๋ชฉ๋ก์ด ์ถ๋ ฅ๋ฉ๋๋ค.
ssh-add -l
- ์์ด์ ํธ ์ข ๋ฃ: ์์ ์ ์ข ๋ฃํ๊ณ ์ถ์ผ๋ฉด SSH ์์ด์ ํธ๋ฅผ ์ข ๋ฃํฉ๋๋ค:
ssh-agent -k
SSH ํค๊ฐ ์ ๋๋ก ์ค์ ๋์๋์ง ํ์ธํ๋ ค๋ฉด ์๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค:
ssh -T git@github.com
์ฑ๊ณต ๋ฉ์์ง:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
(์ฐธ๊ณ ) SSH ์์ด์ ํธ์ Config ํ์ผ์ ์ฐจ์ด
- SSH ์์ด์ ํธ:
- ์์ฑ๋ SSH ํค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ์ฌ ์ธ์ฆ์ ๊ฐ์ํํฉ๋๋ค.
ssh-add
๋ช ๋ น์ด๋ก ํค๋ฅผ ๋ฑ๋กํ๋ฉด ์ฐ๊ฒฐ ์ ์๋์ผ๋ก ํค๋ฅผ ์ฌ์ฉํฉ๋๋ค.- Config ํ์ผ ์ค์ :
- SSH ์ฐ๊ฒฐ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ ํค๋ฅผ ๋ช ์์ ์ผ๋ก ์ง์ ํฉ๋๋ค.
- ํน์ ํธ์คํธ(
Host github.com
)์ ๋ํด ์ด๋ค ํค ํ์ผ์ ์ฌ์ฉํ ์ง ์ค์ ํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.- SSH ์์ด์ ํธ๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋์ํฉ๋๋ค.
(์ฐธ๊ณ ) Config ํ์ผ์ ์ฌ์ฉํ๋ ์ด์
- ์ฌ๋ฌ SSH ํค ๊ด๋ฆฌ:
- GitHub, GitLab ๋ฑ ์ฌ๋ฌ ํ๋ซํผ์์ ์๋ก ๋ค๋ฅธ SSH ํค๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ
~/.ssh/config
ํ์ผ์ ์ค์ ํ์ฌ ๊ฐ ํธ์คํธ์ ์ ํฉํ ํค๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.- ์:
Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa_github
Host gitlab.com HostName gitlab.com User git IdentityFile ~/.ssh/id_rsa_gitlab
- ๊ธฐ๋ณธ ํค ์ง์ :
- ํน์ ํ๋ก์ ํธ์์ ๋ณ๋๋ก ์์ฑํ ํค๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ๋ ค๋ฉด ์ ์ฉํฉ๋๋ค.
(์ฐธ๊ณ ) ์์ด์ ํธ์ Config๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
๋ถ์
์ด๋ค๊ฒ ์ฐ์ ์ ๋๋๊ฐ?- Config ํ์ผ์์ ๋ช ์๋
IdentityFile
์ค์ ์ SSH ์์ด์ ํธ์์ ๊ด๋ฆฌ๋๋ ํค๋ณด๋ค ์ฐ์ ํฉ๋๋ค.- ์ฆ, Config ํ์ผ์ ์ง์ ๋ ํค๊ฐ ์๋ค๋ฉด SSH ์์ด์ ํธ์ ๋ฑ๋ก๋์ง ์์๋ ์ฌ์ฉ๋ฉ๋๋ค.
์ ๋ฆฌ
๋ ๊ฐ์ง๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋ค์์ ํค๋ฅผ ๊ด๋ฆฌํ๊ฑฐ๋ ์ธ์ฆ์ ํธ๋ฆฌํ๊ฒ ์ค์ ํ ์ ์์ต๋๋ค.
์ด ๊ณผ์ ์ ๋ฐ๋ผ ์๋ก์ด SSH ํค๋ฅผ ์์ฑํ๊ณ , ๊ณต๊ฐ ํค๋ฅผ ๋ฑ๋กํ๋ฉฐ, ์ธ์ฆ์ ์ฌ์ค์ ํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค! ๐
์ด์ SSH ํค๋ฅผ ์์ฑํ๊ณ GitHub์ ๋ฑ๋กํ ํ, SSH๋ฅผ ์ด์ฉํด ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ํ๋ ๋ฐฉ๋ฒ์ ์ตํ์ต๋๋ค. ์ด ๊ณผ์ ์ ํตํด ํ ๋ฒ ์ค์ ํ์๋ ๋งค๋ฒ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ๋ ฅํ ํ์ ์์ด GitHub์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์์ ํจ์จ์ ํฌ๊ฒ ๋์ผ ์ ์์ต๋๋ค.
SSH๋ฅผ ์ด์ฉํ ์ ๊ทผ์ ๋ณด์์ฑ์ด ๋๊ณ ํธ๋ฆฌํ๋ฏ๋ก, ํนํ ๊ฐ์ธ ์ปดํจํฐ์์ ์์ ํ ๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ์ถ๊ฐ์ ์ผ๋ก Credential Helper๋ฅผ ์ฌ์ฉํ์ฌ HTTP(S) ๋ฐฉ์์ผ๋ก ์ ๊ทผํ ๋๋ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ค๋๋ ์ฝ์ด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค! ๋ค์ ํฌ์คํธ๋ ์ ์์ Credential Helper
์ ๋ํด์ ์ค๋ช
ํ๋ ๊ธ๋ก ์ฐพ์๋ต๊ฒ ์ต๋๋ค!