선물처럼 찾아온 맥북을 세팅하다가 github에서 막히는 것을 발견했다. 문제가 터진 건 별 것도 아니고 git clone을 할 때다. 아니 내거 내가 가져오겠다고 근데 왜 자꾸 비번 틀리데!
github가 왜 그러는가
21년 8월 13일부터 Github에서 더 이상 git 관련한 작업에서 비밀번호를 요구하지 않고 Personal Authentication Token을 요구한다고 합니다.
https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/
Token authentication requirements for Git operations | The GitHub Blog
Beginning August 13th, 2021, we will no longer accept account passwords when authenticating Git operations on GitHub.com.
github.blog
여기에 영향을 받는 건 거의 다 CLI에서 작성하는 git 명령어들입니다. 대표적인게 push/pull이고 이 때 계정/비번을 요구할 때 비번 자리에 비번을 치면 안됩니다. 왜 나 빼고 다 알고 있었어?
이러면 뭐가 좋아지는가?
Personal Authentication Token을 사용하면 이점이 있을까? 비밀번호를 사용하면 노출되었을 때 바꿔야한다. 어휴 생각만해도 귀찮다. 근데 이 토큰을 사용하면 기기별로 부여할 수 있고, 토큰 별로도 접근권한을 설정할 수 있다. 또한 이 토큰이 유출되었다고 해도 노출된 토큰을 Revoke하면 그 토큰을 사용하던 기기들은 모두 권한이 해제되면서 사용할 수 없게 된다. 훨씬 안전하다! wa!
그래서 어떻게하라구여?
본인의 github 페이지로 가서 Settings > Developer Settings > Personal Authentication Tokens > Generate Token 을 수행하시고 거기서 권한 부여를 하고 설정을 완료한다. 그러면 ghp~로 시작하는 토큰이 나오는데 이걸 복사해두고 다음 부터 비밀 번호를 요구할 때 이 토큰을 입력하면 된다.
조금 더 자세히 쓰면
1. Settings. Github 페이지 우상단에 있다,

2. 왼쪽 메뉴판 중간에 Developer Settings가 있다. 누르자.

3. 그러고 Personal access tokens를 누른다. 여기서 오른쪽에 Generate new token을 누른다.

4. 그러면 아래 같이 New Personal access token이 나올건데
- Note 여기에 이 토큰이 어디에 사용될건지 노트를 남겨놓는다. 나의 경우는 연구실 서버니까 연구실 서버라고 써놨다.
- Expiration 이 토큰이 언제 만료될지 설정합니다. 만료 되면 더 이상 로그인이 안되는 것으로 알고 있다. 그게 싫으면 드롭다운 눌러서 No Expiration을 선택하자. 사실 나도 깜빡했다. 30일 뒤에 바꿔야겠군.
- Select Scopes 여기서 이 토큰이 어떤 짓을 할 수 있는지 지정해준다. 권한 부여의 개념이다. 굉장히 디테일하게 나눠져있는데 진짜 단순작업만 하는 경우면 repo 만 체크해도 충분하다. Github Actions와 같이 git workflows를 사용한다면 체크하고, gist 같은 코드 블럭을 만드는 경우에도 체크해준다. 뭐 근데 그 때 그 때 필요하면 그냥 새로 추가하자. ㅋ;

Generate Token 누르고 만든다. 띵동

5. 그러면 짠 하고 토큰이 생긴다. 아니 모자이크 안해도되냐구요?

6. 이미 지웠지롱.

이 토큰은 한 번 밖에 나오지 않기 때문에 계속 사용해야 한다면 따로 저장해주자. 안 그러면 또 만들어야한다.
아니 근데 매번쳐요?
이 토큰은 git으로 무슨 짓을 하면 매번 쳐줘야한다. 그게 귀찮으면 다음 명령어를 쳐준다.
git config --global credential.helper store
그래도 다음에 한 번은 쳐야한다. 그 후부터는 다시 토큰을 묻지 않을 거다. 일단 위 명령어는 영구저장이자 이 컴퓨터에 있는 모든 레포에 대해 적용이 되는데 지금 작업하고 있는 레포에만 적용하고 싶다면 --global을 치워버리자.
영구적용 말고 일시적용을 하고 싶으면 store 대신에 cache를 적어준다. 기본은 15분이다. 여기에 추가로 시간을 변경하고 싶으면 --timeout 옵션을 변경해준다.
ㄹㅍㄹㅅ
https://pinedance.github.io/blog/2019/05/29/Git-Credential
Git, Pull/Push할 때 id password 묻지 않게 하기
배경
pinedance.github.io
https://curryyou.tistory.com/344
GitHub 토큰 인증 로그인: Personal Access Token 생성 및 사용 방법
Git Hub에서 ID/PW기반의 Basic Authentication 인증을 금지하고, ID/Personal Access Token 방식의 Token Authentication 인증을 요구하고 있다. 앞으로는 소스코드를 push/clone하려고 하면, 아래와 같은 문구..
curryyou.tistory.com
Update command-line Git credential.helper for Personal Access Tokens (PAT) on GitHub
I have several repositories which I was apparently using a cached version of password authentication to GitHub. I learned this only recently because GitHub stopped supporting passwords and instead
stackoverflow.com
오늘도 미세먼지 공유 끝.
'_ISSUE' 카테고리의 다른 글
macOS에 SPM 설치하기 (1) | 2022.01.18 |
---|---|
VSCode에서 Jupyter Shortcuts 안 먹힐 때 (0) | 2022.01.09 |
git branch -M main (0) | 2022.01.04 |