[Git] 깃, 깃허브 id password 저장하기

 

깃을 사용하면서 가끔 clone 할 때 패스워드를 물어보는 경우를 만나게 됩니다. 그런데 어떤 시스템에서는 패스워드를 묻지 않고도 잘 클론이 되기도 하고 어떤 때는 최초에는 물어보고 그 다음에 pull, push 할때는 안물어 보는 경우도 있습니다. 원격 레포지토리 주소가 SSL 로 되어 있으면 상관 없고 https 로 되어 있는 경우는 매번 로그인 정보를 입력해줘야 합니다. 하지만 이건 매우 불편하고 그에 따른 해결책이 있습니다.

 

Basic 인증 사용하기

1. ID 와 비밀번호를 포함하기

이 방법은 아이디 패스워드를 직접입력하는 방식인데 http 통신의 Basic 인증을 사용합니다. 다만 노출된 만큼 위험하고 권장하는 방식이 아닙니다.

 

git clone https://<ID>:<PASSWORD>@https://github.com/Clean-Swift/CleanStore.git
view raw blog1.bash hosted with ❤ by GitHub

Credential 기능 사용하기

2. 캐싱하는 방법

 Git에서는 이런 보안적인 문제 때문에 credential 이라는 기능을 제공합니다. 로그인 정보를 저장해두고 다시 입력하지 않아도 되는 기능입니다. 그 기능 중 첫번째로 cache 를 이용해서 15분 동안 다시 물어보지 않습니다. 만약 그 기간을 늘리고 싶다면 timeout 옵션을 추가합니다.

 

git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=600'
view raw blog2.bash hosted with ❤ by GitHub

 

3. 저장하는 방법

 만약 모두 귀찮아서 그냥 저장하고 싶다면 다음과 같이 store 명령을 추가하면 됩니다. 이 내용은 ~/.git-credenticals 에 저장되며 파일에 기록되는 단점이 있습니다.

 

git config --global credential.helper store
view raw blog3.bash hosted with ❤ by GitHub

 

보안영역에 저장하기 

4. 윈도우 보안 영역에 저장

 윈도우의 경우 다음 명령어를 사용할 경우 보안 영역에 저장되며 windows 의 자격 증명 관리자 (Credential Manager) 에서 값을 확인할 수 있습니다.

 

git config --global credential.helper wincred
view raw blog4.bash hosted with ❤ by GitHub

 

5. 맥 보안 영역에 저장

 맥의 경우 다음 명령어를 사용할 경우 키체인 저장소에 해당 증명이 저장됩니다.

 

git config --global credential.helper osxkeychain
view raw blog5.bash hosted with ❤ by GitHub

 

6. 리눅스 보안 영역에 저장

 리눅스의 경우 해당 OS 별로 별도의 설치가 필요합니다. 마찬가지로 보안영역에 저장됩니다.

 

sudo apt install libsecret-1-0 libsecret-tools
git config --global credential.helper /usr/lib/git-core/git-credential-libsecret
view raw blog6.bash hosted with ❤ by GitHub

 

결과값 출력하기

7. 글로벌 설정값 출력

 이제 모든 설정이 잘 되었는지 글로벌 설정값을 출력해서 확인할 수 있습니다.

 

git config --global --list
view raw blog7.bash hosted with ❤ by GitHub

 

8. 모든 설정값 출력

 Git 은 Config 파일이 여러개 존재할 수 있고 글로벌 설정 영역을 포함한 계층 구조의 모든 설정을 출력하려면 --global 옵션을 제외하고 출력하면 됩니다.

 

git config --list
view raw blog8.bash hosted with ❤ by GitHub

 

Designed by JB FACTORY