본문 바로가기
Tools/Git

[Git] 인증정보 캐싱하기 (credential cache 설정)

by A6K 2022. 9. 7.

github 등을 원격 저장소로 사용하는 경우 push 혹은 pull 명령을 수행할 때 아이디와 비밀번호 같은 인증정보를 요구하는 경우가 많다. 기본적으로 git은 원격저장소에 대한 아이디와 비밀번호를 저장하지 않기 때문에 매번 원격 저장소에 접근할 때마다 아이디와 비밀번호를 입력해야한다.

예를 들어

$ git pull
Username for 'https://github.com': Dave
Password for 'https://dave@github.com' : 
...

$ git push
Username for 'https://github.com': Dave
Password for 'https://dave@github.com' :

이런식으로 매번 동일한 정보를 입력해야한다. 매우 귀찮은 작업이다. 다행히 git은 사용자의 credential 정보를 캐싱하는 기능을 지원한다.

git credential helper

리눅스에서는 다음 명령을 이용해 인증정보를 캐싱해둘 수 있다.

$ git config --global credential.helper cache

git의 credential.helper의 모드를 cache로 설정해 사용하겠다는 의미다. cache 모드로 설정한 경우 인증정보가 메모리에 일정시간 캐싱되어 재사용된다. 이후 일정시간이 지나면 메모리에서 캐시된 인증정보를 지우게 되는데, 이 시간의 기본값은 15분(900초)이다.

만약 작업시간이 길어져서 조금 더 오래 캐싱을 하고 싶다면 --timeout 설정을 이용해서 캐싱 시간을 늘려줄 수 있다.

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

위 명령으로 3600초(1시간) 동안 캐싱되도록 설정을 변경할 수 있다.

만약 macOS를 사용하고 있다면 키체인을 credential.helper로 사용할 수 있다.

$ git config --global credential.helper osxkeychain

 

댓글