git을 사용할 때 원격 저장소에 푸시하는 등 접근할 때 아이디와 비밀번호가 필요한데요, 기본적으로 git은 입력했던 아이디와 비밀번호를 저장하지 않아 매번 repository에 접근할 때마다 아이디와 비밀번호를 요구합니다.

$ git push
Username for 'https://github.com': John
Password for 'https://john@github.com':
...

$ git push
Username for 'https://github.com': John
Password for 'https://john@github.com':
(반복)

매 번 푸시할때마다 아이디와 비밀번호(또는 개인 액세스 토큰(PAT))를 입력하면 정말 귀찮겠죠? 그래서 git은 1.7.9 버전 이후부터 credential 정보를 손쉽게 캐싱해주는 credential helper 옵션을 제공합니다. 기본값으로는 credential helper가 설정되지 않아 매번 인증정보를 입력해줘야 하는데, 메모리나 디스크, 맥이라면 키체인(osxkeychain)에 인증정보를 캐싱하도록 설정해보겠습니다.

git credential helper cache 설정 방법

 

git 인증정보 캐시 설정 방법

리눅스 기반 OS에서는 다음과 같이 커맨드를 입력해줍니다.

$ git config --global credential.helper cache

이 명령어는 credential helper를 cache 모드로 사용한다는 것입니다. 캐시 모드의 경우 메모리에 일정시간 캐싱되어있다가 메모리에서 지웁니다. 기본값은 15분(=900초)입니다.

$ git config --global credential.helper "cache --timeout=3600"

15분이 너무 짧거나 너무 긴 것 같으면 timeout 옵션을 설정해줍니다. timeout 설정된 초 만큼 캐싱을 하게 됩니다. 3600이라고 해놨으면 한시간동안 캐싱을 하는 것입니다.

$ git config --global credential.helper osxkeychain

credential helper로 OS X의 키체인을 사용할 수도 있습니다. 설정방법은 위와 같습니다.

$ git config --global credential.helper wincred	# 구식
$ git config --global credential.helper manager

윈도우용 깃에서도 설정이 가능한데요, wincred는 더이상 유지보수가 되지 않으니 Git Credential Manager for Windows를 사용하는걸 추천한다고 하네요.

 

git 1.7.9 미만 버전의 경우

1.7.9 이전 버전의 깃을 쓰고 있다면 선택지가 없습니다. 평문으로 저장해야 합니다.

remote 주소에 유저명과 패스워드를 포함하는 식으로 써야 하기 때문에 아래 옵션을 추가해줍니다.

$ git config remote.origin.url https://you:password@github.com/you/example.git

이 경우 .git 폴더에 비밀번호(또는 public access token)가 평문으로 저장된다는 점을 명심해주세요.

 

참고