토요일, 8월 14, 2021

[B급 프로그래머] 깃허브, 패스워드 방식 인증 중단

깃허브를 간단한 학습 용도로 사용하시는 분들은 SSH나 토큰 설정 방법이 번거롭기 때문에 계정/암호를 입력해서 저장소에 접근하는 방식을 사용했을 것이다. 그런데... 2021년 8월 13일부터 깃허브에서 패스워드 방식 인증을 중단했다(과거형!). 예를 들어, private 저장소를 만든 다음에 다음과 같이 CLI로 clone하려고 하면 403 오류를 반환한다(주의: 암호는 예시한 password 대신 여러분의 password를 입력해서 테스트해야 한다).

$ git clone https://jrogue:password@github.com/jrogue/samples.git
Cloning into 'samples'...
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: unable to access 'https://github.com/jrogue/samples.git/': The requested URL returned error: 403

인터넷에 올라온 수많은 자료들을 보고 따라하다가 문제가 발생할 경우 멘붕이 오시는 분들을 위해 깃허브에서는 친절하게 개인 접근 토큰 방식(PAT, Personal Access Token)을 안내하고 있으므로 이를 참고해서 접근 토큰을 생성한 다음에 clone할 때 Password 입력을 직전에 만들어 기록해둔 토큰으로 대체하면 되겠다.

그렇다면 굳이 기존 패스워드 대신 불편하게 토큰을 만들어서 사용하게 강제한 이유는 무엇일까? 다음과 같은 이유 때문이다.

  1. 계정과 접근 권한을 분리함으로써 쉽게 토큰을 취소/철회할 수 있게 한다. 기존에는 암호를 변경해야 하는데 모든 저장소가 동일 암호를 공유하기 때문에 변경 자체가 미치는 영향이 상당히 크다.
  2. CLI가 아니라 API로 접근할 때 암호를 사용하면 외부에 공개될 경우 피해가 커질 위험성이 있다.
  3. 토큰을 생성하면서 다양한 권한을 제한적으로 부여할 수 있게 한다. 기존에는 모 아니면 도로 권한을 부여했지만, 세분화가 가능하다
  4. 토큰 만료 시기를 정해서 외부에 유출되더라도 피해를 최소화한다.
  5. 참고로 1년 안에 사용되지 않은 개인 토큰은 자동으로 무효화되므로 이 점에 주의하기 바란다. 기한을 두는 편이 바람직하다.

즐거운 프로그래밍!

EOB

댓글 없음:

댓글 쓰기