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

[Git] GitHub HTTPS ์ธ์ฆ ์‹คํŒจ: "Support for password authentication was removed" ์—๋Ÿฌ ํ•ด๊ฒฐ ๊ฐ€์ด๋“œ

by clolee 2025. 4. 16.

๐Ÿ“˜ GitHub HTTPS ์ธ์ฆ ์‹คํŒจ: "Support for password authentication was removed" ์—๋Ÿฌ ํ•ด๊ฒฐ ๊ฐ€์ด๋“œ


โ— ๋ฌธ์ œ ํ˜„์ƒ

Git ๋ช…๋ น์–ด ์‹คํ–‰ ์‹œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค:

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/...
fatal: Authentication failed for 'https://github.com/<your-name>/<repo>.git'

๐Ÿง  ์—๋Ÿฌ ์›์ธ

์ด ์—๋Ÿฌ๋Š” GitHub๊ฐ€ ๋” ์ด์ƒ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ธ์ฆ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๐Ÿ” ๋ฐฐ๊ฒฝ ์„ค๋ช…

  • GitHub๋Š” ๋ณด์•ˆ ๊ฐ•ํ™”๋ฅผ ์œ„ํ•ด 2021๋…„ 8์›” 13์ผ๋ถ€ํ„ฐ HTTPS๋ฅผ ์ด์šฉํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ธ์ฆ์„ ํ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋Œ€์‹ , ๋” ์•ˆ์ „ํ•œ ์ธ์ฆ ์ˆ˜๋‹จ์ธ Personal Access Token(PAT) ๋˜๋Š” SSH Key ์ธ์ฆ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ์ธ์ฆ์€ ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ(MITM), ํŒจ์Šค์›Œ๋“œ ๋ˆ„์ถœ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ณด์•ˆ ์œ„ํ˜‘์— ์ทจ์•ฝํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 1: Personal Access Token(PAT) ๋ฐฉ์‹

HTTPS URL์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์ธ์ฆ ๋ฐฉ์‹์„ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋Œ€์‹  ํ† ํฐ์œผ๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

1๏ธโƒฃ ํ† ํฐ ์ƒ์„ฑ ๋ฐฉ๋ฒ• (GitHub Classic PAT)

  1. GitHub ๋กœ๊ทธ์ธ ํ›„ ํ† ํฐ ์ƒ์„ฑ ํŽ˜์ด์ง€๋กœ ์ด๋™
  2. โ€œGenerate new token (classic)โ€ ํด๋ฆญ
  3. ์„ค์ • ํ•ญ๋ชฉ:
    • Note: ํ† ํฐ ์ด๋ฆ„ (์˜ˆ: "Git CLI token")
    • Expiration: 30์ผ/90์ผ/์—†์Œ ๋“ฑ ์œ ํšจ ๊ธฐ๊ฐ„
    • Scopes: ์ตœ์†Œ repo ๊ถŒํ•œ ์ฒดํฌ (ํ•„์š”์‹œ workflow, read:org ๋“ฑ ์ถ”๊ฐ€)
  4. Generate token ํด๋ฆญ ํ›„ ์ƒ์„ฑ๋œ ๋ฌธ์ž์—ด์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณต์‚ฌ

    โš ๏ธ ์ด ํ† ํฐ์€ ์ƒ์„ฑ ์งํ›„์—๋งŒ ๋ณด์—ฌ์ง€๋ฉฐ, ๋‹ค์‹œ ํ™•์ธ ๋ถˆ๊ฐ€

2๏ธโƒฃ clone ์‹œ ํ† ํฐ ์‚ฌ์šฉ

git clone https://<username>@github.com/<your-name>/<repo>.git
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ ์ฐฝ์ด ๋‚˜์˜ค๋ฉด, ๋น„๋ฐ€๋ฒˆํ˜ธ ๋Œ€์‹  ์œ„์—์„œ ์ƒ์„ฑํ•œ ํ† ํฐ์„ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•ฉ๋‹ˆ๋‹ค.
  • Git Credential Manager๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋ฉด, ์ €์žฅ ์—ฌ๋ถ€๋ฅผ ๋ฌผ์–ด๋ณด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 2: SSH Key ๋ฐฉ์‹

ํ† ํฐ ์ž…๋ ฅ ์—†์ด ์ž๋™ ์ธ์ฆ์„ ์›ํ•œ๋‹ค๋ฉด SSH ๋ฐฉ์‹์ด ๋” ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์ž์ฃผ Git ์ž‘์—…์„ ํ•˜๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ถ”์ฒœ๋ฉ๋‹ˆ๋‹ค.

1๏ธโƒฃ SSH ํ‚ค ์ƒ์„ฑ

ssh-keygen -t ed25519 -C "your_email@example.com"
  • ~/.ssh/id_ed25519 (๊ฐœ์ธํ‚ค)
  • ~/.ssh/id_ed25519.pub (๊ณต๊ฐœํ‚ค)

โœ… ed25519๋Š” RSA๋ณด๋‹ค ์งง๊ณ  ๋น ๋ฅด๋ฉด์„œ๋„ ์•ˆ์ „ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

2๏ธโƒฃ SSH ๊ณต๊ฐœํ‚ค ๋“ฑ๋ก (GitHub)

  1. GitHub ์ ‘์† โ†’ SSH and GPG keys
  2. New SSH key ํด๋ฆญ
  3. id_ed25519.pub ๋‚ด์šฉ์„ ๋ถ™์—ฌ๋„ฃ๊ณ  ์ €์žฅ

3๏ธโƒฃ SSH ์ฃผ์†Œ๋กœ clone

git clone git@github.com:<your-name>/<repo>.git

โ†’ ์ธ์ฆ ์—†์ด ๋ฐ”๋กœ ํด๋ก ๋ฉ๋‹ˆ๋‹ค.


๐Ÿ“Œ ๊ฐœ๋… ์ •๋ฆฌ: HTTPS vs SSH ์ธ์ฆ ๋ฐฉ์‹

๊ตฌ๋ถ„ HTTPS + Token SSH
์‚ฌ์šฉ๋ฐฉ์‹ ์›น ๋ธŒ๋ผ์šฐ์ €์ฒ˜๋Ÿผ URL ์ธ์ฆ ๊ณต๊ฐœํ‚ค-๊ฐœ์ธํ‚ค ๊ธฐ๋ฐ˜ ์ž๋™ ์ธ์ฆ
์ตœ์ดˆ ์„ค์ • ๋น„๊ต์  ๊ฐ„๋‹จ (ํ† ํฐ ๋ฐœ๊ธ‰๋งŒ) ์ดˆ๊ธฐ ์„ค์ • ํ•„์š” (ํ‚ค ์ƒ์„ฑ + ๋“ฑ๋ก)
๋ณด์•ˆ์„ฑ ์•ˆ์ „ํ•˜์ง€๋งŒ ๋งค๋ฒˆ ์ž…๋ ฅ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Œ ๋งค์šฐ ์•ˆ์ „ํ•˜๊ณ  ์ž๋™ํ™” ๊ฐ€๋Šฅ
์ถ”์ฒœ ๋Œ€์ƒ ๊ฐ€๋” GitHub ์“ฐ๋Š” ์‚ฌ์šฉ์ž ๊ฐœ๋ฐœ์ž, DevOps, ์ž๋™ํ™” ํ™˜๊ฒฝ ๋“ฑ

๐Ÿงผ ๊ธฐํƒ€ ํŒ

  • Git ์ธ์ฆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐ˜๋ณต๋˜๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ์บ์‹œ๋œ ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
    git credential-manager uninstall
    git config --global --unset credential.helper
  • macOS์—์„œ Keychain Access, Windows์—์„œ๋Š” Credential Manager๋ฅผ ํ†ตํ•ด ์ €์žฅ๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋‚˜ ํ† ํฐ์„ ์ˆ˜์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… ๊ฒฐ๋ก 

์‚ฌ์šฉ ํ™˜๊ฒฝ ์ถ”์ฒœ ์ธ์ฆ ๋ฐฉ์‹
๋‹จ๋ฐœ์„ฑ ์‚ฌ์šฉ, GUI ์œ„์ฃผ Personal Access Token (HTTPS)
CLI ์ž์ฃผ ์‚ฌ์šฉ, ์ž๋™ํ™”/์Šคํฌ๋ฆฝํŠธ ํฌํ•จ SSH Key

๋Œ“๊ธ€