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
댓글