๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Git & GitHub

[Git / GitHub] - ๋กœ๊ทธ์ธ ์—†์ด push ํ•˜๊ธฐ(SSH Key ์„ค์ •)

by ์ฃผ๋ฐœ2 2021. 3. 16.
๋ฐ˜์‘ํ˜•

 ์•ˆ๋…•ํ•˜์„ธ์š”~ ์ด์ „์— ์šด์˜ํ•˜๋˜ ๋ธ”๋กœ๊ทธ ๋ฐ GitHub, ๊ณต๋ถ€ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋Š” Study-GitHub ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค!

 ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ

 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์„ ์ง„ํ–‰ํ•˜๋ฉด ๋ณ„๋„์˜ ์ธ์ฆ ์—†์ด ์ง„ํ–‰์ด ๋ฉ๋‹ˆ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€