์ด๋ป๊ฒ"<unk>!๐คซ"๋น์ ์GitHub ๊ณ์ ์ ๋ค์ด๊ฐ์ธ์.
์์ฌ ์ผ์
๋จธ๋ฆฌ๋ง.
GitHub์์ ์์ ์ ์ ๋ถ์ ํ์ธํด์ผ ํ ๋๋ง๋ค ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค. ์ฌ์ฌํ์ง ์์ต๋๊น?๊ทธ๋, ์ ์, ๋๋ ๋ชจ๋ ์ํธ ๊ฒ์ฆ์ ํตํด ๋ ์์ ์ ์๋ณํ๋ ๋ฒ๊ฑฐ๋ก์์ ๊ฒช์ ํ์๊ฐ ์๋ค.๋ณธ๊ณ ์์ ๋น์ ์ ์ํธ๊ฐ ์๋ ์ ๋ถ ์๋ณ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ๊ฒ์ ๋๋ค.๋งค๋ฒ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์๋ค.์ด ๋ฌธ์ฅ์ ๋ฐ๋ผ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์์ฑ๋์๋์ง ์ดํดํ๋ค.
๋ณธ๊ณ ์ ์ค์ ์ SSH ํค๋ฅผ ์ฌ์ฉํ์ฌ GitHub์ ๋ํ ์ธ์ฆ์ ํ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๊ฐ๋ฅด์น๋ ๊ฒ์ ๋๋ค.
SSH ํค๋?
SSH ํค๊ฐ ๋ฌด์์ธ์ง ์ดํดํ๋ ค๋ฉด ๋จผ์ SSH๋ผ๊ณ ํ๋ ๋ณด์ ์ ธ์ ์์์ผ ํฉ๋๋ค.์ฝ๊ฒ ๋งํ๋ฉด SSH๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ ๋ ธ๋(ํด๋ผ์ด์ธํธ์ ํธ์คํธ) ์ฌ์ด์ ์ฌ์ฉ๋๋ ์์ ํ ํต์ ๋ฐฉ์์ด๋ค.SSH๋ ํต์ ๋งํฌ์ ์ฌ์ฉ๋๋ ๋ณด์ ํต์ ํ๋กํ ์ฝ์ ๋๋ค.์ด ๊ฒฝ์ฐ GitHub์ ํธ์คํธ์ด๊ณ PC๋ ํด๋ผ์ด์ธํธ์ ๋๋ค.
PC(ํด๋ผ์ด์ธํธ) ๋ฐ GitHub(ํธ์คํธ)๋ ์ด ๋ณด์ SSH ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์ํธ ์์ด ์์ ํ๊ฒ ์ธ์ฆํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ฌธ์ ๋ ์ฌ์ ํ SSH ํค๋ ๋ฌด์์ ๋๊น?
์ ๋ฐ์ฒ๋ผ SSH ํค๊ฐ ์์ผ๋ก ๋ํ๋๊ณ ํ๋์ ๊ณต๊ฐ ํค์ ํ๋์ ๊ฐ์ธ ํค๋ก ๊ตฌ์ฑ๋์ด ํ๋์ ๊ณต์ฌ SSH ํค ์์ ํ์ฑํ๋ค.SSH ํค๋ SSH ํ๋กํ ์ฝ์ ๋ณด์์ ์ ์งํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.SSH ํ๋กํ ์ฝ์ ๋น๋์นญ ์ํธํ๋ฅผ ๋ณด์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.๊ทธ๋ฐ ๋ค์ SSH ํค๋ฅผ ์ฌ์ฉํ์ฌ ํ๋กํ ์ฝ์ ์ํธํํ๊ณ ๋ณตํธํํฉ๋๋ค.
๊ทธ๋, ๋ ์ด์ ์ก๋ดํ์ง ๋ง๋ผ.SSH ํค ์์ ๋ง๋ค ๋๊ฐ ๋์์ต๋๋ค.
SSH ํค ์์ฑํ๊ธฐ;
์ SSH ํค ์์ ์์ฑํ๋ ค๋ฉด ํฐ๋ฏธ๋์์ ์๋ ๋ช ๋ น์ ๋ณต์ฌํ๊ณ ๋ถ์ฌ๋ฃ์ต๋๋ค.
ssh-keygen -t rsa -b 4096 -C 'Your_Email_Address'
rsa
ํ์ด๋ค.Note;
-t
refers to SSH key type (in this case we're using thersa
SSH key type).
-b
refers to size of SSH key in bits. The minimum bit length is 768 bits and the default length is 2048 bits. So in the command above you're setting the SSH key to a size of 4096 bits.
GitHub์ ๊ณต์ฉ SSH ํค ์ ๋ฌ;
SSH ํค ์ ์ค GitHub์ ํค๊ฐ ์์ด์ผ ํฉ๋๋ค.๊ณต๊ฐ ํค๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝํฉ๋๋ค.๋ค๋ฅธ ํค๋ ๊ฐ์ธ ํค์ ๋๋ค. ssh ์์ด์ ํธ๋ผ๋ ํ๋ก๊ทธ๋จ์ ์ ์ฅํ ๊ฒ์ ๋๋ค.
"The ssh-agent is a helper program that keeps track of usersโ identity keys and their passphrases. The agent can then use the keys to log into other servers without having the user type in a password or passphrase again. This implements a form of single sign-on (SSO)." read more from SSH Academy
ssh ํ๋ก์๋ฅผ ์์ํ๊ธฐ ์ํด ์๋ ๋ช ๋ น์ ๋ถ์ฌ๋ฃ๊ธฐ;
eval `ssh-agent -s`
์์ฑ์ข์ต๋๋ค. ํ์ฌ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ด ๊ฐ์ธ SSH ํค๋ฅผ SSH ์์ด์ ํธ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
ssh-add ~/.ssh/id_rsa
๊ฒฝํํ ๋งํ!Note;
The public rsa SSH key filenameid_rsa.pub
has a.pub
extension and the private has no extension.
๊ธฐ์ตํด๋ผ, ๋๋ GitHub์๊ฒ ๋์ ๊ณต๊ฐ ํค๋ฅผ ์ฃผ์ด์ผ ํ๋ค.๋ค์ ๋ช ๋ น์ ์คํํ์ฌ ๊ณต์ฉ SSH ํค๋ฅผ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํฉ๋๋ค.
์ฐ์
pbcopy < ~/.ssh/id_rsa.pub
์ฐฝ๋ฌธclip < ~/.ssh/id_rsa.pub
ํ์ฌ, ํค๋ฅผ GitHub ๊ณ์ ์ ๋ถ์ฌ์ผ ํฉ๋๋ค.๊ณ์ ์ ๋ก๊ทธ์ธํ ๋ค์ ๋ค์ ํค๋ฅผ ์ถ๊ฐํ์ญ์์ค.1. ์ค์น;
GitHub์ ๋ก๊ทธ์ธํ ํ ํ๋ฉด ์ค๋ฅธ์ชฝ ์๋จ์ ์๋ ๊ณ์ ์ด๋ฏธ์ง๋ฅผ ํด๋ฆญํ์ญ์์ค.๋๋กญ๋ค์ด ๋ชฉ๋ก์ด ํ์๋ฉ๋๋ค.
์ด์ ๋ฐ์ ์๋ ๋ฉ๋ด์ ์ค์ ์ ํด๋ฆญํ์ธ์.
2๋จ๊ณ - SSH ๋ฐ GPG ํค.
์ค์ ์ ์ผ์ชฝ์ ๋ฉ๋ด๊ฐ ์์ต๋๋ค.์ผ์ชฝ ๋ฉ๋ด์์ SSH ๋ฐ GPG ํค ํญ์ ํด๋ฆญํฉ๋๋ค.๋น์ ์ ์๋์ ์ด๋ฐ ํ์ด์ง๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
์ด ํ์ด์ง์์ New SSH Key ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.์ด ๋จ์ถ๋ ๊ณต์ฉ SSH ํค๋ฅผ ์ถ๊ฐํ๋ ํ์ด์ง๋ก ๋ฐฉํฅ์ ๋ฐ๊ฟ๋๋ค.
๋ค์ ๋จ๊ณ๋ก ์ด๋ํ์ญ์์ค.
3๋จ๊ณ - ๊ณต์ฉ SSH ํค๋ฅผ ๋ถ์ฌ๋ฃ์ต๋๋ค.
์ด์ ๊ณต๊ฐ ํค๋ฅผ GitHub์ ์ ๋ฌํ ๋๊ฐ ๋์์ต๋๋ค.
๋ค์์ ๋น์ ์ด ํด์ผ ํ ์ผ์ ๋๋ค.
4. ํ์ธ
GitHub์์ ํ์ธ์ ์ํด ์ํธ๋ฅผ ์ ๋ ฅํด์ผ ํฉ๋๋ค.๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๊ณ ๊ณ์ํ์ธ์.
์์ฑ
SSH์ GPG ํค ํ์ด์ง์ ์ถ๊ฐ๋ SSH ํค ๋ชฉ๋ก์ ๋ณด์ค ์ ์์ต๋๋ค. ์๋์ ๊ฐ์ต๋๋ค.
์ผ์ ๋๋ด๋ค
์ฐ๊ฒฐ์ ํ ์คํธํ๊ธฐ ์ํด ๋ค์ ๋ง์ง๋ง ๋ช ๋ น์ ์คํํ์ญ์์ค.
ssh -T [email protected]
๋๋ ์๋์ ์ ์ฌํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ด์ผ ํ๋ค.์ํ์ด!
์ด์ ์ SSH ํค๋ก ์์ด์ ์ ์์ํด ๋ณผ๊น์?
์ด GitHub repo ๋ก ์ด๋ํด์ ๋ฆฌํฌ์ SSH ๋งํฌ๋ฅผ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํฉ๋๋ค.
ํ์ฌ ํฐ๋ฏธ๋์์ ๋ช ๋ น ์ ๋ ฅํ๊ธฐ;
git clone "paste_in_the_copied_SSH_repo_link_without_qoutes"
๊ทธ๋ฐ ๋ค์ Enter ํค๋ฅผ ๋๋ฆ
๋๋ค.์ ์ฝ๋๋ SSH ์ฐ๊ฒฐ์ ์ฌ์ฉํ์ฌ ๋ฆฌํฌ๋ฅผ ๋ณต์ ํฉ๋๋ค.์ ์น๊ตฌ๋ GitHub SSH ํค์ ํ ์์ ๋๋ค.
๊ฒฐ๋ก
์ํ์ด!Github ๊ตฌ์ฑ ํ์ผ์ ์ SSH ํค๋ฅผ ์ถ๊ฐํ์ต๋๋ค.๋ ์ฝ๊ธฐ ์ํด ์ ๋ ๋ณธ๋ฌธarticle์ ์ถ์ฒํฉ๋๋ค. ์ด๊ฒ์ SSH์ ๋ํ ๊น์ ์ฐ๊ตฌ์ ๋๋ค.๋ง์ฝ ๋น์ ์๊ฒ ๋ฌด์จ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ์ธ์ ๋ ์ง ์ ์๊ฒ ์ ํํ์ธ์.
์ฐ๋ฆฌ ๋ค์ ๋ง๋ ๋๊น์ง, ์ ์.
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(์ด๋ป๊ฒ"<unk>!๐คซ"๋น์ ์GitHub ๊ณ์ ์ ๋ค์ด๊ฐ์ธ์.), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/hubertnare/setting-up-github-authentication-using-ssh-21acํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค