이 문서는 정말 간단한 것을 해결한 글입니다.🔥
잘못된 부분은 댓글 부탁드립니다.🙏
조금이나마 도움이 되셨다면 좋아요와 댓글 부탁드립니다.😉
(사이즈가 너무 큰데,,, 줄일 방법을 모르겠습니다 😥)
학교 프로젝트 때문에 github에서 clone을 받았는데 바로 하나의 메일이 왔다!
Basic authentication using a password to Git is deprecated and will soon no longer work. Visit https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information around suggested workarounds and removal dates.
머지 싶어서 바로 구글에 Token authentication requirements for Git operations
로 검색을 해봤다!
역시 관련된 이슈를 겪은 분들이 블로그를 작성해주셨다. 감사합니다🙏
작년 7월에 Git 작업을 하려면(ex. personal access 토큰, OAuth, GitHub App installation token) 토큰 기반 인증을 사용핸다고 발표했다. 2021년 8월 13일부터 GitHub.com에서 Git 작업을 하려면 패스워드를 이용한 방식은 허용되지 않는다고 한다.
Token authentication requirements for Git operations 링크를 들어가면 자세히 확인할 수 있는데 간단히 정리를 해보면 다음과 같다.
영향을 받는 작업
Command line Git access
)Desktop applications using Git (GitHub Desktop is unaffected)
)Any apps/services that access Git repositories on GitHub.com directly using your password
)영향을 받지 않는 사용자
If you have two-factor authentication enabled for your account, you are already required to use token- or SSH-based authentication.
)If you maintain a GitHub App, GitHub Apps do not support password authentication.
)✳️ 여기서 two-factor authentication이란 웹 사이트 또는 앱에 로그인 할 때 사용되는 추가 보안. 2FA를 사용하면 사용자 이름과 비밀번호로 로그인하고 본인을 인증할 수 있는 다른 방식도 같이 사용해야함(ex. 메일 인증, 문자 인증, OTP서비스 등)
좀 더 상세한 내용은 Token authentication requirements for API and Git operations 이 링크에서 확인할 수 있으나 지금은 현재 페이지에 간략히 정리된 것을 작성할 것이다.
최근 몇 년 동안 GitHub.com에서 제공한 2단계 인증, 로그인 알람, 기기 확인, 손상된 암호 사용 방지 및 WebAuthn 지원으로 고객들은 보안 향상의 혜택을 받았다. 이러한 기능은 공격자가 여러 웹 사이트에서 재사용되는 비밀번호를 가져와서 GitHub 계정에 접근하는 것을 어렵게 만들었다. 하지만, 이러한 개선에도 불구하고 historical한 이유로 이중 인증이 활성화 되지 않은 고객은 GitHub 사용자 이름과 암호만 사용하여 Git 및 API 작업을 계속 사용할 수 있었다.
따라서, 2021년 8월 13일부터 Git 작업을 인증 할 때 더 이상 계정 암호를 허용하지 않으며 개인 액세스 토큰(개발자 용) 또는 OAuth 또는 GitHub 앱 설치 토큰(통합 사용자용)과 같은 토큰 기반 인증을 사용해야 한다. GitHub.com에서 인증된 모든 Git 작업에 대해 원하는 곳에서 SSH 키를 계속 사용할 수도 있다.
토큰은 암호 기반 인증에 비해 여러가지 보안 이점을 제공한다.
1. Unique - 토큰은 GitHub에 고유하며 사용 또는 장치별로 생성될 수 있다.(tokens are specific to GitHub and can be generated per use or per device
)
2. Revocable - 토큰은 영향을 받지 않는 자격 증명을 업데이트 할 필요없이 언제든지 개별적으로 취소할 수 있다. (tokens can can be individually revoked at any time without needing to update unaffected credentials
)
3. Limited - 토큰은 필요한 부분에만 접근할 수 있도록 좁은 범위를 가질 수 있다.(tokens can be narrowly scoped to allow only the access necessary for the use case
)
4. Random - 토큰은 정기적으로 기억하거나 입력해야하는 더 간단한 암호가 될 수 있는 dictionary 또는 무차별 대입 공격에 영향을 받지 않는다.(tokens are not subject to the types of dictionary or brute force attempts that simpler passwords that you need to remember or enter regularly might be
)
날짜 | 시간(한국) | 시간(UTC) |
---|---|---|
2021년 6월 30일 | 16:00 - 19:00 | 07:00 - 10:00 |
2021년 7월 01일 | 01:00 - 04:00 | 16:00 - 19:00 |
2021년 7월 28일 | 16:00 - 19:00 | 07:00 - 10:00 |
2021년 7월 29일 | 01:00 - 04:00 | 16:00 - 19:00 |
If you are using passwords to authenticate Git operations with GitHub.com today, you will soon receive an email urging you to update your authentication method or third-party client.
)Token (or SSH key) authentication will be temporarily required for all Git operations to encourage affected customers to update their authentication method (see below).
)Token (or SSH key) authentication will be required for all authenticated Git operations.
)사실 이분이 핵심이지 않을까 싶다. 물론 공식문서에 아주 잘 나와있다. 나는 추후 관련된 작업(API를 사용한다거나)을 할 수도 있을 거 같아서 액세스 토큰을 발급 받기 위해 다음 글을 참고했다. Creating a personal access token
먼저 이메일 인증을 진행해야 한다.
1)
2)
3)
4)
1-1번처럼 Settings을 들어간다.
왼쪽의 Developer settings를 누른다.
왼쪽의 Personal access tokens를 누른다.
Generate new token을 누른 후 비밀번호를 입력한다.
토큰 설명 이름을 작성한다.
이 토큰이 접근 가능하게 할 것들을 선택한다. (원하는 것들을 선택할 것)
Generate token을 누른다.
토큰 값을 복사하려면 토큰 옆의 버튼을 누른다. 보안상의 이유로 이 화면을 벗어나면 다시 확인할 수 없으니 조심할 것!
Warning: 토큰을 암호처럼 취급하고 비밀로 유지할 것, API로 작업할 때 토큰을 하드 코딩하지말고 환경 변수로 사용할 것
토큰을 사용하여 SAML SSO를 사용하는 조직에 인증하려면 SAML 싱글 사인온 조직에서 사용할 토큰을 승인할 것
토큰이 있으면 HTTPS를 통해 Git 작업을 수행 할 때 비밀번호 대신 토큰을 입력할 수 있습니다.
이제 아래와 같은 화면을 볼 수 있을 것이다.
> $ git clone https://github.com/username/repo.git<br/>
> Username: your_username<br/>
> Password: your_token
나는 맥북을 사용하므로 이 작업을 추가로 진행해주었다.
GitHub에서 사용자 이름, 비밀번호 또는 개인 액세스 토큰을 변경하는 경우 gir-credential-osxkeychain
도우미에서 저장된 자격 증명을 업데이트 해야한다.
Git에서 암호를 입력하라는 메시지가 표시되면 대신 PAT(Personal Access Token)을 입력한다. Git에 대한 암호 기반 인증은 더 이상 사용되지 않으며 PAT를 사용하는 것이 더 안전하다.
⌘(command)
+ space
를 눌러서 keychain access를 검색한다.아래의 명령어를 통해 삭제할 수 있다.
$ git credential-osxkeychain erase
host=github.com
protocol=https
> [Press Return]
성공하면 아무것도 출력하지 않을 것이다. 제대로 된건지 확인하려면 GitHub에서 비공개 저장소를 복제해보면 된다. 암호를 입력하라는 메시지가 나타나면 키 체인 항목이 삭제된 것이다.
이제 오늘의 목적이었던 프로젝트 폴더를 clone
받으려고 하니 username
과 password
를 입력하라는 창이 나왔고 password
에 아까 저장한 토큰을 입력하지 잘 진행되었다!
나는 글을 작성하면서 작업을 진행했지만 따라서 하기만 하면 금방 완료할 수 있을 것이다!
모두 문제가 없기를 바란다 :)
압도적 감사....!