๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป DEV/์—ฐ๊ตฌ๋ชฉ๋ก

[Git] SSH ํ‚ค ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• & SSH ํ‚ค ์ฐพ๋Š” ๋ฐฉ๋ฒ•

by Rising Oneโ˜… 2023. 11. 15.
728x90
๋ฐ˜์‘ํ˜•
SMALL

Git ๋Œ€ํ‘œ์ด๋ฏธ์ง€

 

์ ‘๊ทผ (์š”์•ฝ)

ํ˜•์ƒ๊ด€๋ฆฌ ํˆด Github ์›๊ฒฉ์ €์žฅ์†Œ์—์„œ ํŠน์ • ํ”„๋กœ์ ํŠธ๋ฅผ Pull ๋ฐ›์•„์•ผํ•˜๋Š” ์ผ์€ ๋นˆ๋ฒˆํ•ฉ๋‹ˆ๋‹ค.

Pull์„ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ํฌ๊ฒŒ 'HTTPS' ๋ฐฉ์‹๊ณผ 'SSH(key)' ๋ฐฉ์‹์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด์— 'HTTPS' ๋ฐฉ์‹์œผ๋กœ ํฐ ์ธ์ฆ ๊ณผ์ •์—†์ด ์‰ฝ๊ฒŒ ํ•˜๋˜ ๊ณผ์ •์„, Github์—์„œ๋Š” ์ง€์–‘ํ•˜๋ผ๊ณ  ๊ถŒ๊ณ ํ–ˆ๊ณ ,

๋ณด์•ˆ์— ๋”์šฑ ์œ ๋ฆฌํ•˜๊ณ  ๊ฐ•๋ ฅํ•œ 'SSH(key)' ๋ฐฉ์‹์„ ์ถ”์ฒœํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธธ ๊ถŒ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ, ์ด ๋ฐฉ๋ฒ•์„ ์ ‘๊ทผํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

 

  1. Git > ๋กœ๊ทธ์ธ > ์šฐ์ƒ๋‹จ Profile > settings > "SSH and GPG keys"

 

  2. SSH ํ‚ค ์กฐํšŒ (์ƒ์„ฑํ–ˆ์—ˆ๋‚˜? ๋กœ์ปฌ์— ์žˆ๋‚˜?)

      (2.1). (๋กœ์ปฌ) SSH ํ‚ค ์กฐํšŒ (์–ด๋””์—”๊ฐ€ ์กด์žฌํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ณผ๊ฑฐ ๊ธฐ์–ต..)

 

  3. SSH ํ‚ค ์ƒ์„ฑ

      (3.1). SSH ํ‚ค ์ƒ์„ฑ (Create)

      (3.2). SSH ํ‚ค ๋ณต์‚ฌ (Copy)

      (3.3). SSH ํ‚ค ์‚ญ์ œ (Delete)

 

  4. SSH ํ‚ค ์žฌ๋ฐœ๊ธ‰์˜ ํ•„์š”์„ฑ 

      (4.1) ๋ณด์•ˆ ์ธก๋ฉด

      (4.2) ์•ก์„ธ์Šค ๊ด€๋ฆฌ

      (4.3) ํ‚ค์˜ ์œ ํšจ์„ฑ ํ™•์ธ

      (4.4) ์ตœ์‹  ๋ณด์•ˆ ๊ธฐ์ˆ  ์ ์šฉ

      (4.5) ์ปดํ“จํ„ฐ๋‚˜ ์žฅ์น˜ ์†์‹ค์— ๋Œ€ํ•œ ๋Œ€๋น„

 

  5. SSH ํ‚ค ์žฌ๋ฐœ๊ธ‰ ์ดํ›„ known_hosts ์—…๋ฐ์ดํŠธ

      (5.1).


๋ฐฉ๋ฒ•

  1. Git > ๋กœ๊ทธ์ธ > ์šฐ์ƒ๋‹จ Profile > settings > SSH and GPG key


  2. SSH ํ‚ค ์กฐํšŒ (์ƒ์„ฑํ–ˆ์—ˆ๋‚˜? ๋กœ์ปฌ์— ์žˆ๋‚˜?) => git bash ์ด์šฉ

      (2.1). (๋กœ์ปฌ) SSH ํ‚ค ์กฐํšŒ (์–ด๋””์—”๊ฐ€ ์กด์žฌํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ณผ๊ฑฐ ๊ธฐ์–ต..)

ls ~/.ssh

์œ„ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด 'id_rsa' , 'id_rsa.pub' ๋ผ๋Š” ํŒŒ์ผ, ์ฆ‰ ๊ธฐ์กด์˜ SSH ํ‚ค ํŒŒ์ผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 


 

  3.  SSH ํ‚ค ์ƒ์„ฑ

      (3.1). SSH ํ‚ค ์ƒ์„ฑ (Create)

      - SSH ํ‚ค ๋ฐœ๊ธ‰์˜ ์—ฌ๋ถ€๋ฅผ ์•Œ์ง€ ๋ชปํ•œ ์ฑ„ ๋ฌด์ž‘์ • ์ƒ์„ฑํ•˜๋ ค๋˜ ์ฐฐ๋‚˜์— ์ด๋ฏธ ์ƒ์„ฑ๋์—ˆ๋˜ ์ด๋ ฅ์ด ์กฐํšŒ๋์Šต๋‹ˆ๋‹ค.

        (์‚ญ์ œ ํ›„ ์ƒ์„ฑ์„ ํ• ํ…Œ์ง€๋งŒ) ๋จผ์ € ์ƒ์„ฑ๋งŒ์„ ์œ„ํ•œ ๋ช…๋ น์–ด๋ฅผ ์•Œ์•„๋ณด์ž๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
## "์ž์‹ ์˜ ๊นƒ ๊ณ„์ •(๋ฉ”์ผ)"

์œ„ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด SSH(key)ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ๋‚˜๋ฉด [2] ๋ฒˆ์—์„œ ์ง„ํ–‰ํ–ˆ๋˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์กฐํšŒํ–ˆ๋“ฏ, ์กฐํšŒ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

+ ๋ช…๋ น์–ด ์ดํ›„ ๋“ฑ์žฅํ•˜๋Š” Enter passphrase ๋Š”  SSH ํ‚ค์— ๋Œ€ํ•œ ์•”ํ˜ธ(๋˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ)๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

 

      (3.2). SSH ํ‚ค ๋ณต์‚ฌ (Copy) - ๊ณต๊ฐœํ‚ค

cat ~/.ssh/id_rsa.pub

๊ณต๊ฐœํ‚ค๋ฅผ ๋ณต์‚ฌํ•˜๊ธฐ ์œ„ํ•ด์„ , ์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ถ”ํ›„ ๋ถ™์—ฌ๋„ฃ์„ ํ•„์š”์„ฑ์ด ์žˆ์œผ๋‹ˆ ๊ธฐ์–ตํ•ด๋‘ก์‹œ๋‹ค.

 

      (3.3). SSH ํ‚ค ์‚ญ์ œ (Delete)

      - ์‚ญ์ œ๋ฅผ ์œ„ํ•ด์„œ๋Š” ๊ฐ ํŒŒ์ผ์— ๋Œ€ํ•ด rm ๋ช…๋ น์–ด๋ฅผ ์ง„ํ–‰ํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. 

rm ~/.ssh/id_rsa
rm ~/.ssh/id_rsa.pub

 

  4. SSH ํ‚ค ์žฌ๋ฐœ๊ธ‰์˜ ํ•„์š”์„ฑ

SSH ํ‚ค๋Š” ๋ณด์•ˆ ์ƒ์˜ ์ด์œ ๋กœ ์ผ์ • ๊ธฐ๊ฐ„๋งˆ๋‹ค ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ ํ‚ค๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ฃผ๊ธฐ์ ์œผ๋กœ ์ƒˆ๋กœ์šด ํ‚ค๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ด์œ ์™€ ์žฅ์ ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

(4.1) ๋ณด์•ˆ ์ธก๋ฉด
SSH ํ‚ค๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐ”๊พธ๋ฉด, ๊ธฐ์กด์— ์œ ์ถœ๋œ ํ‚ค์— ๋Œ€ํ•œ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ‚ค๊ฐ€ ์œ ์ถœ๋˜์—ˆ๋‹ค๊ณ  ๊ฐ์ง€๋˜๋ฉด ํ•ด๋‹น ํ‚ค๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์ƒˆ๋กœ์šด ํ‚ค๋กœ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

(4.2) ์•ก์„ธ์Šค ๊ด€๋ฆฌ
ํŒ€์—์„œ ๋ฉค๋ฒ„์˜ ์•ก์„ธ์Šค๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ํŒ€์—์„œ ๋– ๋‚œ ๊ฒฝ์šฐ, ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ํ‚ค๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์ƒˆ๋กœ์šด ํ‚ค๋ฅผ ๋ฐœ๊ธ‰ํ•˜์—ฌ ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ์•ก์„ธ์Šค๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

(4.3) ํ‚ค์˜ ์œ ํšจ์„ฑ ํ™•์ธ
ํ‚ค๋ฅผ ์ •๊ธฐ์ ์œผ๋กœ ๊ฐฑ์‹ ํ•˜๋ฉด ํ•ด๋‹น ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์ด ์—ฌ์ „ํžˆ ์œ ํšจํ•œ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํ‚ค์˜ ์œ ํšจ๊ธฐ๊ฐ„์ด ๋งŒ๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด, ์ด๋ฅผ ๊ฐฑ์‹ ํ•˜์—ฌ ์ž‘๋™ํ•˜๋„๋ก ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

(4.4) ์ตœ์‹  ๋ณด์•ˆ ๊ธฐ์ˆ  ์ ์šฉ
์ƒˆ๋กœ์šด ํ‚ค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋งˆ๋‹ค ์ตœ์‹ ์˜ ๋ณด์•ˆ ๊ธฐ์ˆ ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ํ–ฅ์ƒ๋œ ์•”ํ˜ธํ™” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๋ณด์•ˆ ์ˆ˜์ค€์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

 

(4.5) ์ปดํ“จํ„ฐ๋‚˜ ์žฅ์น˜ ์†์‹ค์— ๋Œ€ํ•œ ๋Œ€๋น„
๊ฐœ์ธ ํ‚ค๊ฐ€ ๋…ธ์ถœ๋˜๊ฑฐ๋‚˜ ์†์‹ค๋œ ๊ฒฝ์šฐ, ํ•ด๋‹น ํ‚ค๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์‹œ์Šคํ…œ์˜ ๋ณด์•ˆ์ด ์œ„ํ—˜์— ์ฒ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๊ธฐ์ ์œผ๋กœ ํ‚ค๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์†์‹ค ๋˜๋Š” ์œ ์ถœ์˜ ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ƒˆ๋กœ์šด SSH ํ‚ค๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ณด์•ˆ ๋ฐ ์•ก์„ธ์Šค ๊ด€๋ฆฌ์˜ ์ธก๋ฉด์—์„œ ์ข‹์€ ๊ด€ํ–‰์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๋”์šฑ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


 

  5. SSH ํ‚ค ์žฌ๋ฐœ๊ธ‰ ์ดํ›„ known_hosts ์—…๋ฐ์ดํŠธ

'id_rsa' ํŒŒ์ผ๊ณผ 'id_rsa.pub' ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์‚ญ์ œํ•˜๊ณ , ๋ณต์‚ฌํ•˜๋Š” ๊ทธ๋Ÿฌํ•œ ๊ณผ์ •์€ ์•Œ๊ฒ ์œผ๋‚˜, ๋™์ผ ๊ฒฝ๋กœ์— ํ•จ๊ป˜ ์กด์žฌํ•˜๋Š” 'known_hosts' ํŒŒ์ผ์— ๋Œ€ํ•œ ํŒŒ์•…๊ณผ ๊ด€๋ฆฌ ๋˜ํ•œ ๊ถ๊ธˆํ•ด์กŒ์Šต๋‹ˆ๋‹ค.

 

"known_hosts" ํŒŒ์ผ :  SSH ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ ‘์†ํ•˜๋Š” ์„œ๋ฒ„์˜ ํ˜ธ์ŠคํŠธ ํ‚ค๋ฅผ ๊ธฐ๋กํ•˜๋Š” ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๋กœ ํ˜ธ์ŠคํŠธ์˜ ์‹ ์›์„ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

 SSH ํ‚ค๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด, ์ƒˆ๋กœ์šด ํ˜ธ์ŠคํŠธ ํ‚ค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ known_hosts ํŒŒ์ผ์— ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ SSH ํ‚ค๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์ƒˆ๋กœ ๋ฐœ๊ธ‰๋ฐ›๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ธฐ์กด์˜ known_hosts ํŒŒ์ผ๋„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด SSH ํด๋ผ์ด์–ธํŠธ์—์„œ ํ˜ธ์ŠคํŠธ ํ‚ค๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๋Š” ๊ฒฝ๊ณ ๊ฐ€ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด SSH ํ‚ค๋ฅผ ์ƒ์„ฑํ•œ ํ›„์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ssh-keyscan ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŠธ์˜ ์ƒˆ๋กœ์šด ํ‚ค๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

ssh-keyscan github.com >> ~/.ssh/known_hosts

์œ„ ๋ช…๋ น์–ด๋Š” GitHub์˜ ํ˜ธ์ŠคํŠธ ํ‚ค๋ฅผ ๊ฐ€์ ธ์™€์„œ ๊ธฐ์กด์˜ known_hosts ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ๊ฐ€ GitHub์ด ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ํ˜ธ์ŠคํŠธ ํ‚ค๋ฅผ ๊ฐ€์ ธ์™€์„œ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ๊ฐ•์กฐํ•˜์ž๋ฉด, ํ˜ธ์ŠคํŠธ ํ‚ค๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ํ•ด๋‹น ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ๊ธฐ์กด์˜ known_hosts ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด์ƒ์œผ๋กœ, Git pull ๋•Œ์— SSH ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉฐ ๊ฒช์€ ๊ณผ์ •์„ ํ•™์Šตํ•ด๋ดค์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์งˆ๋ฌธ์„ ๋Œ“๊ธ€์„ ๋‹ฌ์•„์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค^^

์˜ค๋Š˜๋„ ํŒŒ์ดํŒ…์ž…๋‹ˆ๋‹ค! 

728x90
๋ฐ˜์‘ํ˜•
LIST

๋Œ“๊ธ€