• ์๋ ํ์ธ์~ ์ด์ ์ ์ด์ํ๋ ๋ธ๋ก๊ทธ ๋ฐ GitHub, ๊ณต๋ถ ๋ด์ฉ์ ์ ๋ฆฌํ๋ Study-GitHub ๊ฐ ์์ต๋๋ค!
• ๐
โ GitHub SSH Key ์ค์ ํ๊ธฐ
์๋ ํ์ธ์~ ์ด๋ฒ์ ์ ๋ฆฌํ ๋ด์ฉ์ GitHub์ SSH Key๋ฅผ ์ค์ ํด์ push ๋ฐ pull์ ํ ๋,
์๋ ์ฌ์ง๊ณผ ๊ฐ์ ๋ก๊ทธ์ธ์ ํ์ง์๊ณ ๋ฐ๋ก push๊ฐ ๋๋๋ก ์ค์ ํด๋ณด๊ฒ ์ต๋๋ค.
๐ SSH(Secure Shell Protocol) Key
SSH๋, ์ํธํ๋ ์๊ฒฉ ์ ์ ํ๋กํ ์ฝ์ ์๋ฏธํฉ๋๋ค.
์ฆ, ์ปดํจํฐ๊ฐ์ ์๋ก ํต์ ์ ํ ๋, ๋ณด์์ ์ผ๋ก ์์ ํ๊ฒ ํต์ ์ ํ ๋ ์ฌ์ฉํ๋ ์๊ฒฉ ์ ์ ํ๋กํ ์ฝ์ ๋๋ค.
SSH Key๋, ํ๋กํ ์ฝ๋ก ์๋ฒ์ ์ ์ ์ ๋น๋ฐ๋ฒํธ ๋์ Key๋ฅผ ์ ์ถํ๋ ๋ฐฉ์์ ๋๋ค.
๐ SSH ๋๋ ํ ๋ฆฌ ์์ฑ
๋จผ์ SSH Keyํ์ผ์ ์์ฑํ๊ธฐ ์ํ ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค.
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ cd ~/.ssh
- mkdir: ๋๋ ํ ๋ฆฌ ์์ฑ
- chmod: ๊ถํ ์ค์
- cd: ๊ฒฝ๋ก ์ด๋
๐ SSH Key์์ฑ
$ ssh-keygen -t rsa -b 4096 -C "GitHub Email@example.com"
- -t rsa: rsa ์ํธํ ๋ฐฉ์์ผ๋ก ํค๋ฅผ ์์ฑ
- ๋ง์ง๋ง ๋ฉ์ผ ๊ณ์ ์ GitHub์ ๋ฑ๋กํ ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ์์ฑํฉ๋๋ค.
- SSH Key๋ฅผ ์์ฑํ๋ ๋์ ์๋ฌด๊ฒ๋ ์ ๋ ฅํ์ง๋ง๊ณ ์ํฐํค๋ฅผ ๋๋ฅด๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ผ ์์ ๊ฐ์ด ํค๊ฐ ์ ์์ ์ผ๋ก ์์ฑ๋ฉ๋๋ค.
โป ํน์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํ์ผ๋ฉด, ๋ค์ ๋ช ๋ น์ด๋ฅผ ํตํด ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์์ฑํ๊ณ ์ํฐํค๋ฅผ ๋๋ฌ ์ฌ์ค์ ํฉ๋๋ค.
$ ssh-keygen -p
์์ฑ๋ ํคํ์ผ์ ํ์ธํด๋ณด๋ฉด ์์ ๊ฐ์ต๋๋ค.
- id_rsa: ๊ฐ์ธํค๋ก ํ์ธ์๊ฒ ๋ ธ์ถ๋๋ฉด ์ ๋ ์๋๋ Private Key ์ ๋๋ค.
- ์ด ํค๋ฅผํตํด ์ํธํ๋ ๋ฉ์์ง๋ฅผ ๋ณตํธํ ํ ์ ์์ต๋๋ค.
- id_rsa.pub: ๊ณต๊ฐ๋์ด๋ ๋ฌธ์ ์๋ Public Key ์ ๋๋ค.
- ํด๋น ํค๋ก๋ ๋ณตํธํ๋ฅผ ํ ์ ์์ต๋๋ค.
์์ ๊ฐ์ด ssh-agent๊ฐ ์ ์์ ์ผ๋ก ์คํ์ค์ธ์ง ํ์ธํฉ๋๋ค.
๐ SSH-Agent์ SSH Key ๋ฑ๋กํ๊ธฐ
$ ssh-add ~/.ssh/id_rsa
๐ GitHub์ id_rsa.pub(๊ณต๊ฐํค) ๋ฑ๋กํ๊ธฐ
GitHub > Setting > SSH and GPG keys > New SSH key ๋ฅผ ์ ํํฉ๋๋ค.
- Title: ์ฌ์ฉ์ ์ง์ ํค ์ด๋ฆ
- Key: ๊ณต๊ฐ ํค ๋ด์ฉ
๊ณต๊ฐ ํค๋ฅผ ํ์ธํ๋ ๋ช ๋ น์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$ cat ~/.ssh/id_rsa.pub
์ ๋ ๋ด์ฉ์ ์ ๋ ฅํ๊ณ Add SSH key ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
๊ทธ๋ผ ์์ ๊ฐ์ด ์ ์์ ์ผ๋ก Public Key๊ฐ ๋ฑ๋ก๋ ๊ฑธ ๋ณผ ์ ์์ต๋๋ค.
๐ GitHub ์ค์ ๋ณ๊ฒฝ
Cloneํ๋ ค๋ Repository์ ๊ฐ์ SSH๋ฅผ ํด๋ฆญํ๊ณ URL์ ๋ณต์ฌํฉ๋๋ค.
๊ทธ ํ push / pull์ ์งํํ ํด๋๋ก ๊ฐ์ remote ์ ๋ณด๋ฅผ SSH๋ก ๊ฐฑ์ ํฉ๋๋ค.
$ git remote add origin git@github.com:[๊ณ์ ๋ช
]/[๋ ํฌ์งํ ๋ฆฌ๋ช
]
์ ๋ช ๋ น์ด์์ git@ ~ ๋ถ๋ถ์ SSH๋ฅผ ๋ณต์ฌํ ๋ด์ฉ์ ๋๋ค.
โป ๋ง์ฝ, ๊ธฐ์กด์ remote๊ฐ ๋ฑ๋ก๋์ด์์ผ๋ฉด remove๋ฅผ ํตํด ์ ๊ฑฐํ๊ณ ๋ค์ ์ถ๊ฐํฉ๋๋ค.
$ git remote -v // remote ํ์ธ
$ git remote remove origin // origin remote ์ ๊ฑฐ
์ดํ push ๋ฐ pull์ ์งํํ๋ฉด ๋ณ๋์ ์ธ์ฆ ์์ด ์งํ์ด ๋ฉ๋๋ค.
'Git & GitHub' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Git/GitHub] - GitHub์ ์๋ชป ์ฌ๋ผ๊ฐ ํ์ผ ์ ๊ฑฐํ๊ธฐ(.gitignore) (2) | 2021.07.17 |
---|---|
GitHub(๊นํ๋ธ) - ๋๋ ํ ๋ฆฌ์ ํ์ดํ ํ์(ํด๋ ํด๋ฆญ์ด ์๋ ๋) (12) | 2021.06.15 |
Git pull ๋ฐ์ ๋ด์ญ rollback(๋ณต๊ตฌ) ํ๊ธฐ (0) | 2021.04.19 |
[Git] - git branch ๋ช ๋ น์ด ์ ๋ฆฌ (0) | 2021.04.11 |
[Git / GitHub] - git subtree ๋ช ๋ น์ด (0) | 2021.01.17 |
๋๊ธ