SSH 사용

SSH 사용
─[$] 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

  1. 전역 설정 해제:
    git config --global --unset credentials.helper
  2. 로컬 설정 해제: (각 저장소에서) git config --unset credential.helper
  3. 각 저장소에 대한 자격 증명 파일 생성: (각 저장소 내에서)

    git config credential.helper 'store --file ~/.git_reponame_credentials'
    

이것이 최선의 방법이거나 유일한 방법이라고 말할 수는 없지만 몇 시간 동안 좌절한 후에는 효과가 있었습니다.

답변3

이러한 SSH 키가 포함된 다른 계정이 github에 있을 가능성이 높습니다. 이 같은 경우 :

  1. github에서 로그아웃하세요
  2. 다른 계정으로 로그인
  3. SSH 키 삭제
  4. github에서 로그아웃하세요
  5. 원하는 사용자로 로그인
  6. 필수 사용자에게 SSH 키 할당
  7. "git push"와 같은 git 명령을 다시 시도해 보세요.

관련 정보