웹 개발
GitHub 토큰을 깃 설정에 안전하게 보관하기
git config에 GitHub 토큰을 저장할 때 실수하기 쉬운 부분과 안전한 방법을 정리했다.
GitHub에서 pull/push를 할 때 토큰이 필요한데, 이를 git remote URL에 직접 박아두면 보안 위험이 크다. 저장소를 공개하면 토큰이 노출되고, commit 히스토리에도 남을 수 있다.
안전한 방법은 git credential을 사용하거나, 환경변수로 토큰을 관리하는 것이다.
위험한 방법: URL에 토큰
이렇게 하지 말아야 한다.
# 위험 - 토큰이 git config에 평문으로 저장됨
git remote set-url origin https://[email protected]/user/repo.git
이 상태에서 git config --list를 실행하면 토큰이 그대로 보인다.
안전한 방법: git credential 캐시
Linux/Mac에서는 credential helper를 사용해서 토큰을 메모리에만 보관하는 게 낫다.
# credential helper 설정
git config --global credential.helper cache
# 원격 URL은 토큰 없이 설정
git remote set-url origin https://github.com/user/repo.git
# 처음 push할 때 토큰을 입력하면, cache helper가 15분간 기억
git push
Windows라면 credential.helper store 대신 Windows Credential Manager를 사용하는 게 좋다.
SSH 키 사용 (가장 안전)
토큰보다는 SSH 키를 사용하는 게 가장 안전하다.
# SSH 키 생성 (첫 번째만)
ssh-keygen -t ed25519 -C "[email protected]"
# GitHub에서 공개키 등록
cat ~/.ssh/id_ed25519.pub
# 원격 URL을 SSH로 변경
git remote set-url origin [email protected]:user/repo.git
확인 항목
git remote -v로 현재 원격 URL 확인 (토큰이 보이면 위험)- 토큰을 환경변수나 파일에 직접 저장하지 않기
~/.gitconfig를 읽어서 민감한 정보가 없는지 확인- CI/CD 설정 파일(GitHub Actions 등)에 토큰을 하드코딩하지 않기
토큰이 이미 노출된 경우
만약 토큰이 commit 히스토리에 들어갔다면, GitHub에서 토큰을 즉시 폐기하고 새로 발급받는 게 우선이다.