๐ 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)
- GitHub ๋ก๊ทธ์ธ ํ ํ ํฐ ์์ฑ ํ์ด์ง๋ก ์ด๋
- โGenerate new token (classic)โ ํด๋ฆญ
- ์ค์ ํญ๋ชฉ:
- Note: ํ ํฐ ์ด๋ฆ (์: "Git CLI token")
- Expiration: 30์ผ/90์ผ/์์ ๋ฑ ์ ํจ ๊ธฐ๊ฐ
- Scopes: ์ต์
repo
๊ถํ ์ฒดํฌ (ํ์์workflow
,read:org
๋ฑ ์ถ๊ฐ)
- 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)
- GitHub ์ ์ โ SSH and GPG keys
- New SSH key ํด๋ฆญ
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 |
๋๊ธ