giip
SES Proposal
3 min read

GitHub SSH ํ‚ค ๋“ฑ๋ก ๊ฐ€์ด๋“œ

GitHub ๊ณ„์ •์— SSH ํ‚ค๋ฅผ ๋“ฑ๋กํ•˜์—ฌ ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•˜๊ฑฐ๋‚˜ ์ธ์ฆํ•  ๋•Œ ๋งค๋ฒˆ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

๐Ÿš€ GitHub SSH ์„ค์ •์œผ๋กœ ์ด๋™ โ†’

๐Ÿ“‹ ๊ฐœ์š”

**SSH (Secure Shell)**๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณด๋‚ด์ง€ ์•Š๊ณ ๋„ ์•ˆ์ „ํ•œ ์ธ์ฆ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. SSH ํ‚ค ์Œ์„ GitHub์— ๋“ฑ๋กํ•˜๋ฉด ์ž๊ฒฉ ์ฆ๋ช…์„ ๋งค๋ฒˆ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ ๋„ ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œ, ํ’€, ํ‘ธ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ SSH ํ‚ค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:

  • Ed25519 (๊ถŒ์žฅ) โ€” ํ˜„๋Œ€์ ์ด๋ฉฐ ์•ˆ์ „ํ•˜๊ณ  ํ‚ค ํฌ๊ธฐ๊ฐ€ ์ž‘์Šต๋‹ˆ๋‹ค
  • RSA (4096๋น„ํŠธ) โ€” ๋ ˆ๊ฑฐ์‹œ ํ˜ธํ™˜์šฉ, Ed25519๊ฐ€ ์ง€์›๋˜์ง€ ์•Š๋Š” ํ™˜๊ฒฝ์—์„œ๋งŒ ์‚ฌ์šฉํ•˜์„ธ์š”

๐Ÿ› ๏ธ ์„ค์ • ๋‹จ๊ณ„

1. ๊ธฐ์กด SSH ํ‚ค ํ™•์ธ

์ƒˆ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์ „์— ์ด๋ฏธ ํ‚ค๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

Linux / macOS / WSL:

ls -la ~/.ssh/

Windows (PowerShell):

Get-ChildItem $env:USERPROFILE\.ssh

id_ed25519, id_ed25519.pub, id_rsa, id_rsa.pub ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ํ‚ค ์Œ์ด ์ด๋ฏธ ์žˆ์œผ๋ฉด 3๋‹จ๊ณ„๋กœ ๊ฑด๋„ˆ๋›ฐ์„ธ์š”.

2. ์ƒˆ SSH ํ‚ค ์ƒ์„ฑ

Ed25519 ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด ์ƒˆ SSH ํ‚ค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค (๊ถŒ์žฅ).

Linux / macOS / WSL:

ssh-keygen -t ed25519 -C "<your-email@example.com>"

Windows (PowerShell):

ssh-keygen -t ed25519 -C "<your-email@example.com>"

ํ‚ค ํŒŒ์ผ ์œ„์น˜๋ฅผ ๋ฌป๋Š” ํ”„๋กฌํ”„ํŠธ์—์„œ Enter๋ฅผ ๋ˆŒ๋Ÿฌ ๊ธฐ๋ณธ๊ฐ’(~/.ssh/id_ed25519)์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์•”ํ˜ธ(passphrase)๋ฅผ ๋ฌป๋Š” ํ”„๋กฌํ”„ํŠธ์—์„œ๋Š” ์•ˆ์ „ํ•œ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ Enter๋ฅผ ๋ˆŒ๋Ÿฌ ๋น„์›Œ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ์ธ ํ‚ค๊ฐ€ ์œ ์ถœ๋˜๋”๋ผ๋„ ์ถ”๊ฐ€ ๋ณด์•ˆ ๊ณ„์ธต์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

3. ๊ณต๊ฐœ ํ‚ค ํ™•์ธ ๋ฐ ๋ณต์‚ฌ

๊ณต๊ฐœ ํ‚ค๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

Linux / macOS / WSL:

cat ~/.ssh/id_ed25519.pub

Windows (PowerShell):

Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub

๊ณต๊ฐœ ํ‚ค๋Š” ssh-ed25519 ๋˜๋Š” ssh-rsa๋กœ ์‹œ์ž‘ํ•˜๊ณ  ์ด๋ฉ”์ผ ์ฃผ์†Œ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค. ์ „์ฒด ์ถœ๋ ฅ์„ ์„ ํƒํ•˜์—ฌ ๋ณต์‚ฌํ•˜์„ธ์š”.

โš ๏ธ ๋ณด์•ˆ ์ฃผ์˜: ๊ฐœ์ธ ํ‚ค(id_ed25519 ๋˜๋Š” id_rsa, .pub ์—†์ด)๋ฅผ ์ ˆ๋Œ€ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ๊ฒŒ์‹œํ•˜์ง€ ๋งˆ์„ธ์š”. ๊ณต๊ฐœ ํ‚ค(id_ed25519.pub)๋งŒ ๊ณต์œ ํ•ด๋„ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

4. GitHub์— ํ‚ค ๋“ฑ๋ก

  1. GitHub์— ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค
  2. ํ”„๋กœํ•„ ์‚ฌ์ง„ ํด๋ฆญ โ†’ Settings ํด๋ฆญ
  3. ์™ผ์ชฝ ์‚ฌ์ด๋“œ๋ฐ”์—์„œ SSH and GPG keys ํด๋ฆญ
  4. New SSH key ํด๋ฆญ
  5. Title ํ•„๋“œ์— ์„ค๋ช…์ด ํฌํ•จ๋œ ๋ ˆ์ด๋ธ”์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: ๋‚ด ๋…ธํŠธ๋ถ, ์‚ฌ๋ฌด์‹ค PC)
  6. Key ํ•„๋“œ์— ๊ณต๊ฐœ ํ‚ค๋ฅผ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค
  7. Add SSH key ํด๋ฆญ

5. ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ

SSH ํ‚ค๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋“ฑ๋ก๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

ssh -T git@github.com

์ฒซ ์—ฐ๊ฒฐ ์‹œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

The authenticity of host 'github.com (IP ์ฃผ์†Œ)' can't be established.
RSA key fingerprint is SHA256:xxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

yes๋ฅผ ์ž…๋ ฅํ•˜๊ณ  Enter๋ฅผ ๋ˆ„๋ฅด์„ธ์š”. ์„ฑ๊ณตํ•˜๋ฉด ๋‹ค์Œ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค:

Hi <username>! You've successfully authenticated, but GitHub does not provide shell access.

6. SSH๋กœ ์ €์žฅ์†Œ ๋ณต์ œ

์—ฐ๊ฒฐ์„ ํ™•์ธํ•œ ํ›„ SSH ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค.

git clone git@github.com:<owner>/<repository>.git

<owner>๋ฅผ ์ €์žฅ์†Œ ์†Œ์œ ์ž๋กœ, <repository>๋ฅผ ์ €์žฅ์†Œ ์ด๋ฆ„์œผ๋กœ ๋Œ€์ฒดํ•˜์„ธ์š”.

๐Ÿ” SSH ํ‚ค ๋“ฑ๋ก ํ™•์ธ

GitHub ๊ณ„์ •์— ๋“ฑ๋ก๋œ ๋ชจ๋“  SSH ํ‚ค๋ฅผ ๋ชฉ๋ก์œผ๋กœ ๋ณด๋ ค๋ฉด:

  1. Settings โ†’ SSH and GPG keys๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค
  2. ์ œ๋ชฉ๊ณผ ์ƒ์„ฑ ๋‚ ์งœ์™€ ํ•จ๊ป˜ ๋“ฑ๋ก๋œ ํ‚ค ๋ชฉ๋ก์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค

๐Ÿฉบ ๋ฌธ์ œ ํ•ด๊ฒฐ

์ฆ์ƒ์›์ธํ•ด๊ฒฐ
Permission denied (publickey)SSH ํ‚ค๊ฐ€ ๋“ฑ๋ก๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ํ‚ค ์‚ฌ์šฉ๊ณต๊ฐœ ํ‚ค๊ฐ€ GitHub์— ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ๊ฐœ์ธ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
ssh -T๋Š” "successfully authenticated"๋ผ๊ณ  ํ•˜์ง€๋งŒ git ์ž‘์—…์€ ์‹คํŒจํ‚ค๊ฐ€ ํŠน์ • ์ €์žฅ์†Œ์— ์ถ”๊ฐ€๋˜์ง€ ์•Š์ŒSSH ํ‚ค๊ฐ€ ํ•ด๋‹น ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์ฝ๊ธฐ/์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
์—ฐ๊ฒฐ ์‹œ๊ฐ„ ์ดˆ๊ณผํฌํŠธ 22๋ฅผ ์ฐจ๋‹จํ•˜๋Š” ๋ฐฉํ™”๋ฒฝ ๋˜๋Š” ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ๋„คํŠธ์›Œํฌ ์„ค์ •์„ ํ™•์ธํ•˜๊ฑฐ๋‚˜ HTTPS๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
git@github.com: Permission denied์ž˜๋ชป๋œ ์›๊ฒฉ์ง€ URL ํ˜•์‹์›๊ฒฉ์ง€ URL์—์„œ git@github.com:(์ฝœ๋ก )์„ ์‚ฌ์šฉํ•˜๊ณ  https://github.com/์ด ์•„๋‹Œ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
"Too many authentication failures"ํ‚ค ์‹œ๋„ ํšŸ์ˆ˜๊ฐ€ ๋งŽ์•„ ์„œ๋ฒ„๊ฐ€ ๊ฑฐ๋ถ€ssh -vT git@github.com์œผ๋กœ ๋””๋ฒ„๊น…ํ•˜๊ฑฐ๋‚˜ -i ~/.ssh/id_ed25519๋กœ ํ‚ค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”’ ๋ณด์•ˆ ๋ชจ๋ฒ” ์‚ฌ๋ก€

  • ๊ฐœ์ธ ํ‚ค(id_ed25519 ๋˜๋Š” id_rsa)๋ฅผ ์ ˆ๋Œ€ ๊ณต์œ ํ•˜์ง€ ๋งˆ์„ธ์š”. ์ด์Šˆ, ์ด๋ฉ”์ผ ์ฒจ๋ถ€, ์ €์žฅ์†Œ ์ปค๋ฐ‹์— ํฌํ•จํ•˜์ง€ ๋งˆ์„ธ์š”.
  • SSH ํ‚ค ์ƒ์„ฑ ์‹œ ์•”ํ˜ธ(passphrase)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ์ธ ํ‚ค๊ฐ€ ์œ ์ถœ๋˜๋”๋ผ๋„ ๋ณดํ˜ธํ•˜์„ธ์š”.
  • ๊ธฐ๊ธฐ๋ณ„๋กœ ๊ณ ์œ ํ•œ SSH ํ‚ค ์‚ฌ์šฉ โ€” ๋…ธํŠธ๋ถ, ๋ฐ์Šคํฌํ†ฑ, ์„œ๋ฒ„์— ์„œ๋กœ ๋‹ค๋ฅธ ํ‚ค๋ฅผ ๋“ฑ๋กํ•˜์„ธ์š”.
  • ๋“ฑ๋ก๋œ ํ‚ค ์ •๊ธฐ ๊ฐ์‚ฌ โ€” ์˜ค๋ž˜๋˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” SSH ํ‚ค๋Š” GitHub ๊ณ„์ •์—์„œ ์ œ๊ฑฐํ•˜์„ธ์š”.
  • ์กฐ์ง์—์„œ ์ค‘์•™ ์ง‘์ค‘์‹ ํ‚ค ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ SSH ์ธ์ฆ์„œ ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•˜์„ธ์š”.

๐Ÿ“š ์ฐธ์กฐ


๋ฒ„์ „: 1.0 ์ตœ์ข… ์—…๋ฐ์ดํŠธ: 2026-09-24 ์†Œ์Šค ํŒŒ์ผ: giipv3/public/help/github-ssh-key.ko.md