Github 아이디/token 입력없이 사용하기(아마존 AWS LightSail CLI 환경에서..)

아마존 라이트세일에 인스턴스를 만들어서 CI/CD 환경을 구축중에 있습니다. 

 

Github Actions 를 통해 workflow 구성을 통해 자동빌드/배포 환경을 구성중인데 다양한 방법으로 구성을 할 수 있는 것 같습니다. S3 환경을 이용하시는 분들도 계시고 빌드 파일 자체를 바로 ssh 를 통해 AWS 서버로 보내서 구현하는 등 방법은 많은 듯 한데 아직 제가 원하는 깔끔한 구성은 못찾았고 빌드 과정에서 오류에 부딪혀서 헤매고 있습니다.

 

그런 와중에 라이트세일에서 제공해주는 브라우저 CLI 환경에서 git pull 명령어 입력 때마다 아아디와 토큰을 입력해야 하는 불편함으로 인해 서칭을 좀 진행했고 간단한 방법이 있어서 글을 남기고자 합니다.

 

git credential helper를 통해 아이디와 토큰 정보를 저장할 수 있습니다. 

 

store 모드로 설정하게 될 경우 홈 디렉토리 아래에 .git-credentials 파일이 생성되며 git 로그인 시도를 하게 되면 계정정보가 해당 파일에 저장되어서 반영구적으로 아이디와 비밀번호 입력없이 git 명령어를 사용할 수 있습니다. 만약 해킹으로 인해 Home 디렉토리가 탈취되게 된다면 github 에 접근 가능한 아이디와 토큰 정보도 함께 탈취되므로 store모드는 보안에 취약할 수 있을 것 같습니다.

 

cache 모드로 설정하게 될 경우 timeout 지정된 시간만큼 사용할 수 있으며 시간은 초단위로 지정할 수 있습니다. 지정된 시간이 지난 이후에는 계정정보는 삭제되게 됩니다.

// store 모드
$ git config credential.helper store

// 지정시간 임시 보관 모드(초단위)
$ git config credential.helper 'cache timeout=3600'

 

저장된 계정 정보를 삭제하려면 아래 명령으로 삭제가 가능합니다. 

$ git credential-cache exit

 

아래 사이트를 참고해 작성했으니 공식 메뉴얼을 확인하시어 잘못된 정보를 가져가는 일이 없으시기 바랍니다.

https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Credential-%EC%A0%80%EC%9E%A5%EC%86%8C

 

Git - Credential 저장소

실제로는 어떻게 동작하는지 살펴보자. Git의 Credential-Helper 시스템의 기본 명령은 git credential 이다. 이 명령이 하위 명령이나 옵션, 표준입력으로 필요한 정보를 입력받아 전달한다. 이 과정은 예

git-scm.com