[GitHub] 비밀번호 Deprecation Notice 메일 해결

요리하는코더·2021년 3월 24일
19

공부

목록 보기
1/2
post-thumbnail

이 문서는 정말 간단한 것을 해결한 글입니다.🔥
잘못된 부분은 댓글 부탁드립니다.🙏
조금이나마 도움이 되셨다면 좋아요와 댓글 부탁드립니다.😉


(사이즈가 너무 큰데,,, 줄일 방법을 모르겠습니다 😥)

[Github] Deprecation Notice

학교 프로젝트 때문에 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 링크를 들어가면 자세히 확인할 수 있는데 간단히 정리를 해보면 다음과 같다.

Workflows affected

영향을 받는 작업

  • 커맨드 라인을 통해 Git에 접근하는 것(Command line Git access)
  • Git을 사용하는 데스크톱 애플리케이션(단, GitHub desktop은 상관없음) (Desktop applications using Git (GitHub Desktop is unaffected))
  • 비밀번호를 사용하여 GitHub.com의 Git 레포지토리에 접근하는 모든 앱과 서비스 (Any apps/services that access Git repositories on GitHub.com directly using your password )

영향을 받지 않는 사용자

  • 계정에 대해 2단계 인증(2-FA)이 활성화 된 경우 토큰 또는 SSH 기반의 인증을 사용(If you have two-factor authentication enabled for your account, you are already required to use token- or SSH-based authentication.)
  • GitHub 앱을 유지하는 경우, GitHub 앱은 비밀번호 인증을 지원하지 않음(If you maintain a GitHub App, GitHub Apps do not support password authentication. )

✳️ 여기서 two-factor authentication이란 웹 사이트 또는 앱에 로그인 할 때 사용되는 추가 보안. 2FA를 사용하면 사용자 이름과 비밀번호로 로그인하고 본인을 인증할 수 있는 다른 방식도 같이 사용해야함(ex. 메일 인증, 문자 인증, OTP서비스 등)


Background

좀 더 상세한 내용은 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 )


What you need to do today

  • (개발자의 경우) 지금 GitHub.com에서 Git 작업을 인증하기 위해 암호를 사용하는 경우, 중단을 방지하려면 2021년 8월 31일까지 HTTPS(권장) 또는 SSH 키를 통한 개인 액세스 토큰 사용을 시작해야한다. 오래된 third-party integration을 사용하고 있다는 경고를 받으면 클라이언트를 최신 버전으로 업데이트 해야한다.
  • (통합 사용자의 경우) 중단을 방지하기 위해 2021년 8월 13일까지 웹 또는 장치 인증을 통해 통합 과정을 진행해야 한다. 자세한 내용은 OAuth 앱 인증개발자 블로그의 공지 사항을 참조할 것.

Enabling two-factor authentication

  • 계정에서 암호 기반 인증을 허용하지 않으려면 지금 바로 계정에 대해 이중 인증을 활성화 할 수 있다. 이를 위해서는 Git 및 third-party integration을 통해 인증 된 모든 작업에 개인 액세스 토큰을 사용해야 한다.

Brownouts

  • 영향을 받는 모든 고객에게 인증 변경 사항을 알리기 위해 두번의 예정된 브라운 아웃 동안 일시적으로 암호 인증 지원을 비활성화하고 암호를 수행 한 Git 작업이 일시적으로 실패하게 만든다. 브라운 아웃의 일정은 다음과 같다.
날짜시간(한국)시간(UTC)
2021년 6월 30일16:00 - 19:0007:00 - 10:00
2021년 7월 01일01:00 - 04:0016:00 - 19:00
2021년 7월 28일16:00 - 19:0007:00 - 10:00
2021년 7월 29일01:00 - 04:0016:00 - 19:00

Timeline

  • 2020년 12월 15일 - 암호를 사용하여 GitHub.com에서 Git 작업을 인증하는 경우 곧 인증 방법 또는 타사 클라이언트를 업데이트하라는 이메일 발송(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.)
  • 2021년 06월 30일, 2021년 7월 28일 - 영향을 받는 고객이 인증 방법을 업데이트하도록 권장하기 위해 모든 Git 작업에 토큰(또는 SSH 키) 인증이 일시적으로 필요(Token (or SSH key) authentication will be temporarily required for all Git operations to encourage affected customers to update their authentication method (see below).)
  • 2021년 8월 13일 - 인증된 모든 Git 작업에는 토큰(또는 SSH 키) 인증이 필요(Token (or SSH key) authentication will be required for all authenticated Git operations.)

해결 방법

사실 이분이 핵심이지 않을까 싶다. 물론 공식문서에 아주 잘 나와있다. 나는 추후 관련된 작업(API를 사용한다거나)을 할 수도 있을 거 같아서 액세스 토큰을 발급 받기 위해 다음 글을 참고했다. Creating a personal access token

  1. 먼저 이메일 인증을 진행해야 한다.
    1)
    2)
    3)
    4)

  2. 1-1번처럼 Settings을 들어간다.

  3. 왼쪽의 Developer settings를 누른다.

  4. 왼쪽의 Personal access tokens를 누른다.

  5. Generate new token을 누른 후 비밀번호를 입력한다.

  6. 토큰 설명 이름을 작성한다.

  7. 이 토큰이 접근 가능하게 할 것들을 선택한다. (원하는 것들을 선택할 것)

  8. Generate token을 누른다.

  9. 토큰 값을 복사하려면 토큰 옆의 버튼을 누른다. 보안상의 이유로 이 화면을 벗어나면 다시 확인할 수 없으니 조심할 것!
    Warning: 토큰을 암호처럼 취급하고 비밀로 유지할 것, API로 작업할 때 토큰을 하드 코딩하지말고 환경 변수로 사용할 것

  10. 토큰을 사용하여 SAML SSO를 사용하는 조직에 인증하려면 SAML 싱글 사인온 조직에서 사용할 토큰을 승인할 것

Using a token on the command line

토큰이 있으면 HTTPS를 통해 Git 작업을 수행 할 때 비밀번호 대신 토큰을 입력할 수 있습니다.

이제 아래와 같은 화면을 볼 수 있을 것이다.

> $ git clone https://github.com/username/repo.git<br/>
>   Username: your_username<br/>
>   Password: your_token

Updating credentials from the macOS Keychanin

나는 맥북을 사용하므로 이 작업을 추가로 진행해주었다.

GitHub에서 사용자 이름, 비밀번호 또는 개인 액세스 토큰을 변경하는 경우 gir-credential-osxkeychain 도우미에서 저장된 자격 증명을 업데이트 해야한다.

Git에서 암호를 입력하라는 메시지가 표시되면 대신 PAT(Personal Access Token)을 입력한다. Git에 대한 암호 기반 인증은 더 이상 사용되지 않으며 PAT를 사용하는 것이 더 안전하다.

Updating your credentials via Keychain Access

  1. ⌘(command) + space를 눌러서 keychain access를 검색한다.
  2. github.com을 검색한다.
  3. internet password를 찾는다
  4. 수정 혹은 삭제를 진행한다.

Deleting your credentials via the command line

아래의 명령어를 통해 삭제할 수 있다.

$ git credential-osxkeychain erase
host=github.com
protocol=https
> [Press Return]

성공하면 아무것도 출력하지 않을 것이다. 제대로 된건지 확인하려면 GitHub에서 비공개 저장소를 복제해보면 된다. 암호를 입력하라는 메시지가 나타나면 키 체인 항목이 삭제된 것이다.

이제 오늘의 목적이었던 프로젝트 폴더를 clone 받으려고 하니 usernamepassword를 입력하라는 창이 나왔고 password에 아까 저장한 토큰을 입력하지 잘 진행되었다!

나는 글을 작성하면서 작업을 진행했지만 따라서 하기만 하면 금방 완료할 수 있을 것이다!

모두 문제가 없기를 바란다 :)


📑 참고사이트

profile
요리 좋아하는 코린이

2개의 댓글

comment-user-thumbnail
2021년 7월 28일

압도적 감사....!

1개의 답글