프롤로그: 갑자기 작동하지 않는 git push
리눅스 워크스테이션에서 연구용 코드나 블로그 포스트를 업데이트하던 중, 평소처럼 사용하던 GitHub 아이디와 패스워드를 입력했는데 다음과 같은 에러 메시지를 마주할 때가 있습니다.
remote: Support for password authentication was removed on August 13, 2021.remote: Invalid username or token. Password authentication is not supported for Git operations.
이는 GitHub이 보안 강화를 위해 일반 패스워드 기반의 인증 방식을 완전히 중단하고, 개인 액세스 토큰(Personal Access Token, PAT) 또는 SSH 키 방식만 허용하도록 정책을 변경했기 때문입니다.
본 포스팅에서는 터미널 환경에서 다시 원활하게 데이터를 전송할 수 있도록 PAT를 발급받고 적용하는 방법을 정리합니다.
1단계: GitHub에서 개인 액세스 토큰(PAT) 발급받기
먼저 웹 브라우저를 통해 GitHub 계정에서 인증용 토큰을 생성해야 합니다.
- GitHub 우측 상단 프로필 클릭 -> Settings 진입
- 좌측 하단 최하단의 Developer settings 클릭
- Personal access tokens -> Tokens (classic) 선택
- Generate new token -> Generate new token (classic) 클릭
- Note: 토큰 용도 입력 (예: `workstation)
- Expiration: 만료 기간 설정 (보안을 위해 90일 권장, 번거롭다면 ‘No expiration’ 가능)
- Select scopes: 최소한
repo권한(저장소 접근)은 체크해야 합니다. - 최하단 Generate token 클릭
⚠️ 주의: 생성된 토큰 값은 단 한 번만 노출됩니다. 창을 닫으면 다시 볼 수 없으니 반드시 안전한 곳에 복사해 두시기 바랍니다.
2단계: 리눅스 터미널에서 토큰 적용하기
토큰을 발급받았다면, 이제 터미널에서 git push를 시도할 때 패스워드 칸에 발급받은 토큰 값을 붙여넣으면 인증에 성공합니다.
하지만 매번 긴 토큰 값을 입력하는 것은 매우 번거롭습니다. 이를 자동화하기 위해 Credential Helper를 사용합니다.
# 토큰 정보를 디스크에 저장하여 재입력을 방지 (보안 주의)
git config --global credential.helper store
이후 한 번만 더 push를 수행하며 아이디와 토큰(패스워드 대용)을 입력하면, 해당 정보가 ~/.git-credentials 파일에 암호화되지 않은 상태로 저장되어 다음부터는 묻지 않습니다.
3단계: 보안 강화 - 캐시(Cache) 방식 사용하기
공용 워크스테이션이거나 보안이 중요하다면 정보를 파일로 저장하는 store 방식보다는 메모리에 잠시 보관하는 cache 방식을 권장합니다.
Bash
# 인증 정보를 1시간(3600초) 동안만 메모리에 유지
git config --global credential.helper 'cache --timeout=3600'
에필로그: 데이터 관리의 기본은 보안
GitHub는 버전 관리와 협업을 위한 필수적인 시스템으로, 한 번 익혀두면 연구의 다양한 분야에서 큰 자산이 됩니다. 다만, 협업의 접점이 넓은 만큼 개인 보안 관리의 중요성 또한 매우 높습니다. 패스워드 인증에서 토큰 기반 인증(PAT)으로의 변화는 초기 설정의 번거로움이 따르지만, 계정 탈취 시 권한 범위를 제한할 수 있다는 강력한 보안상의 이점이 있습니다. 이제 인증 문제를 해결하여 원활한 push가 가능해진 만큼, 백업이나 보안 같은 기술적 관리의 부담은 덜어내고 오롯이 연구 본업에만 집중할 수 있는 환경이 되기를 바랍니다.