git 실행 시 아이디 및 비밀번호 자동으로 입력
github의 인증 방식
- id / pw
: 2021년 8월 이후로 password를 통한 인증이 안되도록 바뀜
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.'
- Personal Access Key (Token-Based Authentication)
: 깃허브 계정 설정 > Developer settings에서 생성하는 개발자용 토큰
: 비밀번호 대신 사용 가능
: https://2mukee.tistory.com/239
- SSH Key
: 깃을 실행할 클라이언트 호스트의 SSH Key를 생성하고, 해당 키의 공개키를 깃허브 계정에 공개키를 등록하여 제어
: 2021년 11월 이후로는 DSA에 대한 지원을 끊고 RSA로만 지원
: https://2mukee.tistory.com/248
- OAuth
: 깃허브 계정 인증을 구글 등 서비스 아이디를 통해 인증
repo 주소에 id와 token키 입력
git clone https://<ID>:<TOKEN>@myrepo.github.com/coolproject.git
: 토큰 키가 그대로 노출될 수 있어 위험한 방법
git credential / cache
git config --global credential.helper cache
: 인증했던 ID와 TOKEN을 메모리에 일정시간 저장하여 입력 횟수를 줄이는 방법.
: 기본적으로 15분 동안 유지
: https://git-scm.com/docs/git-credential-cache
- 연장
// 단위는 초 단위. 기본값 900. 최대값은 실험 필요
git config credential.helper 'cache --timeout=300'
git credential / store
git config --global credential.helper store
: 인증했던 ID와 TOKEN을 디스크에 저장.
: 명령 실행 후 로그인 하면 정보는 자동으로 업데이트 됨
: 로그인 정보는 ~/.git-credentials에 저장 됨
: 파일에 로그인 정보가 남기 때문에 보안적으로 좋은 방법은 아님
git credentail / keychain
# for windows
git config --global credential.helper wincred
# for Mac
git config --global credential.helper osxkeychain
# for ubuntu
sudo apt install libsecret-1-0 libsecret-1-dev
sudo make --directory=/usr/share/doc/git/contrib/credential/libsecret
git config --global credential.helper \
/usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
: OS나 라이브러리에서 지원하는 키체인을 통해 로그인 정보를 안전하게 저장하는 방법
git 설정 상태 확인
# local 설정
git config --list
# Global 설정
git config --global --list
: git에 대한 설정을 확인할 수 있음
: local 설정은 .git 파일에 대한 설정, global 설정은 시스템 전역적인 설정
Reference