git 업데이트, 다운로드 등을 수행할때마다 입력해야하는 패스워드를 입력하지 않는 방법이 없을까요?

보안상의 이유로 매번 패스워드, 아이디를 입력하는 것이 필요할 것입니다. 하지만 보안상 큰 문제가 없고(예를들어 개발, 운영 서버가 분리되어 있음) 매번 패스워드를 입력하는 것이 매우 불편하다면 이를 해결할 수 있는 방법이 있습니다. 바로 git config에 사용자 정보를 저장하여 사용하는 방법입니다. 그럼 어떻게 가능한지 아래에서 알아봅니다.


! git config가 자주 사용되는 부분
보통 사용자 이름과 이메일을 등록할 경우 git config를 가장 많이 사용됩니다. 아래는 사용자 이름, 이메일을 등록하는 방법입니다. 이처럼 등록해두면 commit 수행시 등록된 사용자의 정보가 업데이트되어 반영될 것입니다.
$ git config --global user.name "이름"
$ git config --global user.email 이메일@webisfree.com

각각 이름, 이메일 등록 방법입니다.



# Cache를 사용하여 매번 git 아이디, 패스워드 입력 안하는 방법

아래는 매번 입력해야 하는 인증을 캐시에 저장하여 일정시간동안 입력하지 않는 방법입니다.
$ git config credential.helper store

이제 새롭게 git 명령어를 입력해봅니다. 아직 저장된  credential 정보가 없으므로 아래처럼 패스워드 및 아이디 입력창이 나타나는데 입력하도록 합니다.
Username for 'myRepo':
Password for 'myRepo':

계정을 입력한 후에는 정보가 서버에 저장되어 입력하지 않아도 됩니다. 이때 만료 시간을 입력하기 위해서 아래의 커맨드를 추가로 입력합니다.
$ git config --global credential.helper 'cache --timeout 7200'

timeout 뒤의 숫자는 초(second)입니다. 여기서는 7200만큼(2시간)의 만료시간을 추가했습니다. 시간이 지나면 당연히 다시 아이디, 패스워드 입력이 필요하게 됩니다.

1 day - 86,400
7 days - 604,800
30 days - 2,592,000

@ 참고링크 - https://git-scm.com/docs/git-credential-cache



# 마치면서
위 설정이 끝나면 이제 git에 인증내용이 저장되어 설정된 시간동안 패스워드 및 아이디 입력이 없이 사용가능합니다. 위에도 언급했지만 보안상의 이유로 가급적 아이디 패스워드의 인증과정은 생략하는 것보다 입력하는 것이 좋습니다. 다만 개발서버가 따로 분리되어 있는 경우라면 개발서버 내부에 설정을 저장하여 사용하는 것이 좋을 것입니다.