[Github] Support for password authentication was removed on August 13, 2021 / Fine-grained vs classic
개인 맥북에서 (정말 오랜만에) clone 하려니까
이게 나오길래 그냥 생각없이 github 비밀번호 쳤더니..
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
요게 나왔다.
차근차근 수정해보자!
1. Github 프로필로 이동 https://github.com/settings/profile
2. 왼쪽 제일 하단 Developer settings 클릭
3. Personal access tokens > Tokens > Generate new token 클릭
이렇게 뜰텐데, 나는 classic으로 선택..
Fine-grained 는 하단에서 설명하겠다.
4. Expiration 및 Scope 설정
보통 No expiration으로 많이하고, 나는 권한이 없어서 다시 토큰을 regenrate하는 일을 방지하기위해 다 체크를 해줬다,
5. 화면에 토큰이 보일텐데, 꼭 복사를 해두자.
나가면 다시 못봄
6. 다시 clone이나 push 시도
그러면 Username이랑 Password 받을거임
Username for 'https://github.com': 유저네임
Password for 'https://Zedd0202@github.com': 토큰 복붙
하고나면 clone이나 push가 제대로 되는 것을 볼 수 있다.
# Q&A
Q : Username을 어떻게 확인?
A : 본인 Github 프로필 URL(https://github.com/본인의_Username)에 붙어있는거로 알고있긴한데..맞겠져
ex. 나의 경우 https://github.com/Zedd0202 < 라서 Username은 Zedd0202
Q : 생각해보니까 Username잘못입력함;;; 다시 입력하고싶은데..
Username for 'https://github.com': 유저네임
Password for 'https://Zedd0202@github.com': 토큰 복붙
이거 다시 나오게 하는 방법 없는지?ㅎ;;
A : 키체인 접근 > github 검색
키체인 > 로그인인거 삭제하면 되는듯하다. 나는 수정일로 보긴 했는데;; 우클릭하면 삭제 나옴
다시 clone이나 push하면
Username for 'https://github.com': 유저네임
Password for 'https://Zedd0202@github.com': 토큰 복붙
이거 다시 물어보는 것을 볼 수 있다!
Q : Fine-grained, repo-scoped 이거 머임; 이거로 하면 안되는지..
A : Github 공식 문서에서는 classic 대신 Find-grained를 사용할 것을 권장한다고 나와있다.
GitHub recommends that you use fine-grained personal access tokens instead of personal access tokens (classic) whenever possible.
Fine-grained는 classic에 비해 다음과 같이 보안적으로 좀 더 안전하다.
- 각 토큰은 단일 사용자 또는 조직이 소유한 리소스에만 액세스할 수 있습니다.
- 각 토큰은 특정 저장소에만 액세스할 수 있습니다.
- 각 토큰에는 개인 액세스 토큰(클래식)에 부여된 범위보다 더 많은 제어를 제공하는 특정 권한이 부여됩니다.
- 각 토큰에는 만료 날짜가 있어야 합니다.
- 조직 소유자는 조직의 리소스에 액세스할 수 있는 세분화된 개인 액세스 토큰에 대한 승인을 요구할 수 있습니다.
음 organization이 있고, 권한을 세밀하게 관리해야하는 거면 Fine-grained를 쓰면 좋을 것 같긴한데,
나는 혼자 쓰는거니까 그냥 classic이 마음 편한것 같다.
Fine-grained를 써볼까도 싶지만 위에서 언급됐듯이 만료날짜가 반드시 있어야 하기 때문에..
Expiration에 No Expriation설정이 없다..
(대충 Fine-grained를 안쓰는 가장 큰 이유라는 뜻)
끝!