─[$] cat ~/.gitconfig
[user]
name = Shirish Agarwal
email = [email protected]
[core]
editor = leafpad
excludesfiles = /home/shirish/.gitignore
gitproxy = \"ssh\" for gitorious.org
[merge]
tool = meld
[push]
default = simple
[color]
ui = true
status = auto
branch = auto
이제 매번 브라우저에서 자격 증명을 찾을 필요가 없도록 git 자격 증명을 github, gitlab 및 gitorious에 넣고 싶습니다. 이것을 어떻게 자동화할 수 있나요?
zsh를 실행 중입니다.
답변1
SSH 사용
git 인증을 처리하는 일반적인 방법은 SSH에 위임하는 것입니다. 일반적으로 원격 저장소(예를 들어 GitHub에서) 인증이 필요할 때마다 사용하세요. 물론 키 에이전트를 사용하거나 데스크탑 환경에서 처리하도록 하거나 ssh-agent
수동으로 사용하고 처리할 수 있습니다 ssh-add
.
사용자 이름을 지정하지 않으려면 SSH에서 구성할 수도 있습니다. ~/.ssh/config
예를 들어 다음과 같습니다.
Host git.opendaylight.org
User skitt
그런 다음 다음을 사용하여 복제할 수 있습니다.
git clone ssh://git.opendaylight.org:29418/aaa
(여기에는 사용자 이름이 없습니다.)
사용gitcredentials
SSH 방식을 적용할 수 없는 경우(예를 들어HTTPS를 통해 액세스되는 저장소를 사용하고 있는 경우) git에는 자격 증명을 처리하는 자체 방법이 있습니다.gitcredentials
(그리고 일반적으로git-credential-store
). 다음을 사용하여 사용자 이름을 지정합니다.
git config credential.${remote}.username yourusername
자격 증명 도우미와 함께 사용
git config credential.helper store
( --global
이 설정을 모든 곳에서 사용하려면 지정하십시오).
그런 다음 처음으로 저장소에 액세스할 때 git은 비밀번호를 묻고 저장합니다(기본적으로 ~/.git-credentials
). 이후 저장소에 액세스하면 사용자에게 묻는 대신 저장된 비밀번호를 사용합니다.
경고하다: 자격 증명을 홈 디렉터리에 일반 텍스트로 저장합니다. 따라서 이것이 의미하는 바를 이해하고 위험에 대해 편안하지 않다면 권장되지 않습니다.
답변2
나중에 아시는 분들을 위해 - 고생했지만 결국 성공했어요
https/credentials.helper/Ubuntu
- 전역 설정 해제:
git config --global --unset credentials.helper
- 로컬 설정 해제: (각 저장소에서)
git config --unset credential.helper
각 저장소에 대한 자격 증명 파일 생성: (각 저장소 내에서)
git config credential.helper 'store --file ~/.git_reponame_credentials'
이것이 최선의 방법이거나 유일한 방법이라고 말할 수는 없지만 몇 시간 동안 좌절한 후에는 효과가 있었습니다.
답변3
이러한 SSH 키가 포함된 다른 계정이 github에 있을 가능성이 높습니다. 이 같은 경우 :
- github에서 로그아웃하세요
- 다른 계정으로 로그인
- SSH 키 삭제
- github에서 로그아웃하세요
- 원하는 사용자로 로그인
- 필수 사용자에게 SSH 키 할당
- "git push"와 같은 git 명령을 다시 시도해 보세요.