로컬 컴퓨터에서 깃을 이용해 코드를 열심히 수정하고 버전 관리를 시작했다면, 이제 이 코드를 안전하게 클라우드에 백업하고 공유하기 위해 깃허브(GitHub)와 연동할 차례다. 원격 저장소를 만들고 내 코드를 업로드하는 '푸시(Push)' 작업을 실행할 때, 초보자들이 가장 당황하는 순간이 바로 찾아온다.
remote: Support for password authentication was removed on August 13, 2021. fatal: Authentication failed for '[suspicious link removed]'
분명히 평소에 깃허브 로그인할 때 사용하는 아이디와 비밀번호를 정확하게 입력했는데, 인증에 실패했다는 차가운 에러 메시지가 뜬다. 비밀번호 인증 방식이 보안상의 이유로 폐기되었다는 사실을 모른 채 여기서 막히는 경우가 허다하다.
[소제목] 왜 패스워드 로그인이 차단되었으며 대체 수단은 무
엇인가
과거에는 깃허브에 코드를 올릴 때 웹사이트 로그인 비밀번호를 터미널에 그대로 입력하는 방식을 사용했다. 하지만 보안이 취약하다는 치명적인 문제가 있어, 깃허브는 몇 년 전부터 계정 비밀번호를 이용한 터미널 인증을 전면 차단했다.
이제는 일반 비밀번호 대신 '개인 토큰(Personal Access Token, PAT)'이라는 일종의 임시 비밀번호를 발급받아 사용해야 한다.
이 토큰은 특정 권한만 가질 수 있고 유효기간을 설정할 수 있어 훨씬 안전하며, 깃허브가 내 컴퓨터를 인증하는 새로운 열쇠 역할을 한다.
[소제목] 깃허브 개인 액세스 토큰(PAT) 발급받는 단계별 방법
원격 저장소에 코드를 밀어 넣으려면 내 깃허브 계정에서 직접 토큰을 생성해야 한다. 직접 겪어본 바에 따르면 이 과정은 몇 번 클릭만 하면 간단하게 끝난다.
깃허브 웹사이트에 로그인한 후, 우측 상단의 프로필 아이콘을 누르고 [Settings]로 들어간다.
설정 페이지 가장 아래쪽에 있는 [Developer settings] 메뉴를 클릭한다.
좌측 메뉴에서 [Personal access tokens]를 누르고, 그 아래의 [Tokens (classic)]을 선택한다.
우측 상단의 [Generate new token] 버튼을 누르고 [Generate new token (classic)]을 선택한다.
Note 란에 이 토큰의 용도(예: my-pc-token)를 적고, Expiration(만료 기간)을 설정한다. (초보자라면 넉넉하게 90일 또는 No expiration으로 설정하는 것이 편하다.)
권한(Scopes) 목록에서 'repo' 항목(저장소 제어 권한)에 체크를 한다.
페이지 맨 아래로 내려가 [Generate token] 버튼을 클릭한다.
화면에 나타나는 긴 영숫자 조합의 토큰 값(ghp_로 시작함)을 복사해서 메모장에 안전하게 보관한다. 이 창을 닫으면 다시는 전체 토큰 값을 볼 수 없으므로 반드시 미리 복사해 두어야 한다.
[소제목] 발급받은 토큰으로 푸시(Push) 에러 해결하기
토큰을 발급받았다면, 터미널에서 다시 원격 저장소로 푸시 명령어를 입력해 본다.
git push origin main
명령어를 치면 아이디와 비밀번호를 묻는 창이 뜬다. 이때 아이디에는 기존 깃허브 이메일이나 닉네임을 적고, 비밀번호를 입력하라고 할 때 아까 복사해 둔 긴 토큰 값(ghp_...)을 그대로 붙여넣으면 된다. (참고로 터미널 창에 비밀번호나 토큰을 입력할 때는 보안상 아무런 글자나 별표도 표시되지 않는 것이 정상이다. 당황하지 말고 그냥 붙여넣은 뒤 엔터를 치면 된다.)
인증이 성공적으로 끝나면 코드가 원격 저장소로 말끔히 업로드되는 것을 확인할 수 있다. 만약 앞으로 매번 토큰을 입력하기 번거롭다면, 윈도우의 자격 증명 관리자에 계정 정보를 등록하거나 SSH 키 방식을 설정하여 자동화할 수도 있다.
[소제목] 초보자가 자주 하는 실수와 주의사항
토큰을 발급받을 때 가장 흔한 실수는 필요한 권한(repo 등) 체크를 누락하는 것이다. 권한이 부족한 토큰을 만들면 푸시를 할 때 또다시 권한 거부 에러가 발생하므로, 토큰 생성 시 저장소 관련 권한이 체크되었는지 반드시 확인해야 한다.
또한, 복사해 둔 토큰 문자열을 실수로 잃어버렸거나 외부에 노출시켰다면 즉시 깃허브 설정 페이지에서 해당 토큰을 삭제(Delete)하고 새로 발급받아야 한다. 토큰은 사실상 계정 비밀번호와 다름없으므로 타인에게 절대 노출되지 않도록 안전하게 관리하는 습관이 필수적이다.
핵심 요약:
깃허브는 보안상의 이유로 패스워드 직접 입력을 차단했으므로 반드시 개인 액세스 토큰(PAT)을 발급받아야 한다.
깃허브 설정의 Developer settings에서 토큰을 생성하고 'repo' 권한을 체크한 뒤 안전한 곳에 보관해야 한다.
터미널에서 푸시할 때 비밀번호 입력란에 기존 계정 비번이 아닌 발급받은 토큰 문자열을 입력해야 정상적으로 인증된다.
다음 편 예고: 다음 편에서는 가상환경(Virtualenv)의 개념과 파이썬 프로젝트별로 독립된 개발 환경을 만드는 방법을 알아본다.
이 글을 읽으면서 깃허브 인증 에러 때문에 답답했던 경험이 있거나 토큰 발급 과정에서 헷갈린 부분이 있다면 댓글로 편하게 공유해 주세요!
0 댓글