2022년 7월 작성, 2026년 10월 보완.
store방식이 비밀번호를 평문으로 저장한다는 경고와, 지금 권장되는 Git Credential Manager를 추가했다. GitHub는 2021년 8월부터 비밀번호 대신 토큰으로 인증해야 한다(GitHub 토큰 발급 방법). SSH로 접속하면 이 설정이 필요 없다(GitHub SSH 키 등록).
목차
목차 펼치기
문제 상황
Git으로 원격 저장소에 push·pull할 때마다 아이디와 비밀번호(또는 토큰)를 계속 물어봤다.
해결 방법
Git의 credential.helper 설정으로 인증 정보를 저장하거나 잠시 기억하게 할 수 있다. 세 가지 방법이 있다.
1. Git Credential Manager (권장)
인증 정보를 OS의 안전한 저장소(Windows 자격 증명 관리자, macOS 키체인 등)에 암호화해서 저장한다. Windows용 Git에는 기본으로 포함되어 있다.
git config --global credential.helper manager
macOS는 Homebrew로 설치한 뒤 설정할 수 있다. 자세한 설치 방법은 Git Credential Manager 문서를 참고한다. macOS 키체인만 쓰려면 git config --global credential.helper osxkeychain 도 된다.
2. store: 파일에 저장
한 번 입력하면 다시 묻지 않는다.
git config --global credential.helper store
주의:
store는 인증 정보를 암호화하지 않고 평문으로~/.git-credentials파일에 저장한다. 이 파일이 유출되면 비밀번호나 토큰이 그대로 노출된다. 개인 컴퓨터가 아니거나 보안이 중요하다면 1번이나 3번을 쓴다.
3. cache: 메모리에 잠시 기억
인증 정보를 메모리에 일정 시간 동안만 기억한다. 기본은 900초(15분)이다.
git config --global credential.helper cache
시간을 바꾸려면 --timeout 을 초 단위로 준다. 아래는 10분이다.
git config --global credential.helper 'cache --timeout=600'
cache 는 유닉스 소켓을 쓰기 때문에 Windows용 Git에서는 지원되지 않는다.
설정 확인과 해제
# 지금 설정된 helper 확인
git config --global --get credential.helper
# 설정 해제
git config --global --unset credential.helper
store 로 저장한 정보를 지우려면 ~/.git-credentials 파일에서 해당 줄을 지운다.
정리
- 가능하면 Git Credential Manager로 OS 저장소에 안전하게 저장한다.
store는 편하지만 평문으로 저장된다는 점을 알고 쓴다.cache는 정해진 시간 동안만 기억하므로, 시간이 지나면 다시 입력해야 한다.