gnome-keyring 및 http res와 함께 git을 사용하는 올바른 방법은 무엇입니까?


43

현재, git pull또는 git pushhttp (s) 저장소에 갈 때마다 다음과 같은 결과가 나타납니다.

$ git pull
Username for 'https://gitrepos.reposdomain.com': me@mydomain.com
Password for 'https://me@mydomain.com@gitrepos.reposdomain.com': 

이것은 자주 사용하지 않아도되지만, 매우 빨리 성가 시게됩니다. 불행히도이 경우 ssh로 전환하는 것은 옵션이 아닙니다.

이전 버전의 git자격 증명 "저장소"및 "캐시"를 제공했지만 암호를 일반 텍스트로 저장했기 때문에 권장되지 않습니다.

그러나

최신 버전의 gitgit 자격 증명은 gnome-keyring에 실제로 저장 되지만 올바르게 설정해야합니다.

SO에 대한 다른 (우분투가 아닌) 답변을 따라 시도해 보았지만 (즉, this ) 여전히 사용자 이름과 암호 프롬프트가 표시됩니다.

githttp 리포지토리의 자격 증명 을 저장하는 가장 정확하고 안전한 방법은 무엇 이며 어떻게 우분투에서 작동합니까?


시도한 방법을 언급해야합니다. 그렇지 않으면 정확하게 제안하는 답변을 찾을 수 있습니다.
muru

@muru 왜 가독성을 위해 추가 한 강조점을 제거 했습니까? 이제는 텍스트의 한 덩어리 일 뿐이며 질문을 다른 질문과 차별화하는 이유와 실제 질문은 덜 분명합니다.
tudor

전체 문장은 굵은 글씨 이탤릭체는 거의 읽을 수 있습니다.
muru

1
@muru 나는달라고 간청합니다. 나는 대담하고 이탤릭체로 된 텍스트가 문제의 핵심 부분을 이끌어 낸다는 것을 알게되었습니다.
tudor

답변:


45

gnome-credential-helper 더 이상 사용되지 않습니다.

대신 libsecret을 사용하십시오. 아직 우분투를 구축하지 않은 경우 다음 절차를 따르십시오.

  1. 다음을 사용 libsecret하여 개발 라이브러리를 설치할 수 있습니다 .

    sudo apt-get install libsecret-1-0 libsecret-1-dev

  2. 그런 다음 자격 증명 관리자를 구축해야합니다.

    cd /usr/share/doc/git/contrib/credential/libsecret

    sudo make

  3. 마지막으로 git 은 설정에서 새로 생성 된 파일을 가리켜 야합니다 .

    git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

https://stackoverflow.com/a/40312117/2017781 에 대한 자세한 내용


1
이 솔루션은 git 버전> = 2.11 (libsecret 디렉토리가있는 곳)에만 적용됩니다.
Charles Roberto Canato

1
안전한가요? 비밀은 어디에 저장됩니까? 전송과 보관이 모두 안전합니까? 공식적인 문서가 있습니까? 분명히, 당 이 페이지이 페이지 , 그것은 "메인"에서의 데비안 / 우분투에 의해 관리. "DBus를 사용하여 '비밀 서비스'와 통신합니다."
caw

1
@caw : 그놈에서 "비밀 서비스"는 다른 API를 통해 동일한 그놈 키링 데몬입니다. (libsecret 계획은 다른 DE가 동일한 API를 지원하는 자체 백엔드를 빌드 할 수 있도록하는 것이 었습니다. 예를 들어 KDE는이를 kwalletd에서 구현하기로 계획했습니다.)
grawity

5
이것이 18.04에서 작동하는지 확인할 수 있으므로 선호하는 답변을 업데이트하십시오. :)
튜더

44

credential helper그놈 키링으로 자식을 설정해야합니다 :

그놈 키링 개발을 설치하고 컴파일하십시오 :

sudo apt-get install libgnome-keyring-dev
sudo make --directory=/usr/share/doc/git/contrib/credential/gnome-keyring

자격 증명을 설정하십시오.

git config --global credential.helper /usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring

정말 이상합니다. 의미 상, 링크의 답변과이 답변 사이에는 차이가 없어야합니다. 그러나 어떤 이유로이 답변은 다른 사람이 그렇지 않은 곳에서 작동합니다.
tudor

그런 다음 git push또는 git pull정상으로 실행 하고 처음으로 ansd 상점에 문의하고 그 이후에는 열쇠 고리에서 가져옵니다. 이를 확인하려면을 실행하십시오 seahorse. "비밀번호"-> "로그인"에 표시되어야합니다.
tudor

@tudor 이상합니다. 제 답변과 링크 사이에 "개념적"차이가 없습니다. 도움이되어 다행입니다.

여전히 "make"명령을 실행해야하는데 이상하게 보이지만이 단계는 훌륭합니다. 감사!
DaveTheScientist

2

이 간단한 접근 방식은 git 2.17.1을 사용하는 Ubuntu 18.04.1에서 충분합니다.

git config --global credential.helper cache

다음과 같이 1 시간 (= 3600 초) 시간 초과를 지정할 수 있습니다.

git config --global credential.helper 'cache --timeout=3600'

훌륭한 매뉴얼 에서 더 읽어보십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.