git pull의 비밀번호로 명령을 입력하는 방법은 무엇입니까?


140

이 명령을 한 줄로 수행하고 싶습니다.

git pull && [my passphrase]

어떻게합니까?


:이 따라 비어있는 당신의 암호를 변경할 수 있습니다 help.github.com/articles/working-with-ssh-key-passphrases
jacerate

1
ssh 에이전트를 실행하면 암호를 입력해야 할 필요가 없습니다. 처음으로 git pull을 수행하면 대화식으로 수행되며 ssh 에이전트는 개인 키를 기억하므로 프롬프트없이 git pull을 실행할 수 있습니다.
Tim Finer

답변:


162

이것은 정확히 당신이 요구 한 것이 아니라 http (들)입니다.

  • .netrc 파일 (Windows의 경우 _netrc)에 비밀번호를 넣을 수 있습니다. 거기에서 자동으로 픽업됩니다. 600 권한으로 홈 폴더로 이동합니다.
  • 리포지토리를 복제 할 수도 https://user:pass@domain/repo있지만 많은 곳에서 사용자 / 패스를 보여주기 때문에 권장하지 않습니다 ...
  • 새로운 옵션은 자격 증명 도우미 를 사용하는 것 입니다. 자격 증명은 표준 자격 증명 도우미를 사용하여 로컬 구성에 일반 텍스트로 저장됩니다. wincred가있는 자격 증명 도우미도 Windows에서 사용할 수 있습니다.

자격 증명 도우미의 사용 예

  • git config credential.helper store -자격 증명을 무기한 저장합니다.
  • git config credential.helper 'cache --timeout=3600'-60 분 동안 상점

ssh 기반 액세스의 경우 필요할 때 ssh 키를 제공하는 ssh 에이전트를 사용합니다. 이를 위해서는 컴퓨터에서 키를 생성하고, 공개 키를 원격 서버에 저장하고 개인 키를 관련 키 저장소에 추가해야합니다.


1
SSH 부분을 자세히 설명해 주시겠습니까? EC2 인스턴스를 구성하고 있는데 비밀번호와 AWS 자동 확장을 요청하지 않고 풀링하고 싶습니다. 이 공공 / 민간 계획은 좋은 해결책처럼 보입니다.
Pedro Dusso


2
배포 키 메커니즘을 사용하여 종료했는데 좋은 솔루션으로 보입니다. 감사!
Pedro Dusso

129

커맨드 라인에서 https 연결에 대한 자격 증명을 제공하는 한 가지 방법을 찾았습니다. 풀 URL을 지정하고 자격 증명을 포함하려면 완전한 URL을 지정하면됩니다.

git pull https://username:password@mygithost.com/my/repository

자격 증명으로 리포지토리를 복제하지 않아도되므로 자격 증명이 끝나지 않습니다 .git/config. (그러나 쉘이 당신을 배신하지 않고 명령 줄을 내역 파일에 저장하지 않도록하십시오.)


암호는 필요하지 않으며, 이런 식으로 암호를 작성하는 것은 안전하지 않습니다.
meteor

이것은 이미 2012 년에 승인 된 답변에 나열된 것 중 하나입니까?
eis

8
@eis : 정확하지 않습니다. 요점은 자격 증명이 포함 된 URL로 리포지토리 를 복제 할 필요 는 없지만 자격 증명 이있는 URL에서 계속 가져올 수 있다는 것 입니다. 그 결과 자격 증명이 .git / config 파일에서 끝나지 않습니다.
holgero

5
:password부품 을 생략하면 Enter 키를 누른 후 비밀번호를 묻는 메시지가 표시됩니다. 그렇게하면 암호가 bash 기록에 저장되지 않습니다.
Matthias Fischer

1
예 @ PramodGarg 사용-git pull username : password@mygithost.com/my/repository.git 지점
PAVITRA

39

질문에 직접 대답하지는 않지만 기본적으로 원격 서버를 가져올 때마다 암호를 다시 입력하지 않는 방법을 검색 할 때이 질문을 발견했습니다 .

음, git제한된 시간 동안 자격 증명을 캐시 할 수 있습니다. 그것은 사용자 정의 할 수 git config있으며이 페이지는 그것을 잘 설명합니다 :

https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux

터미널에서 다음을 실행하십시오.

$ git config --global credential.helper cache
# Set git to use the credential memory cache

캐시 시간 초과를 사용자 정의하려면 다음을 수행하십시오.

$ git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)

그러면 자격 증명이 요청 된 시간 동안 메모리에 저장됩니다.


5

git 자격 증명 도우미 "저장"이 암호화되지 않은 암호 변경 사항을 Git 2.5 이상 (2014 년 2 분기)에 저장하는 방식에 유의하십시오 .
참조 17c7f4d 커밋 에 의해 (Junio C 하마노 gitster)

credential-xdg

store자격 증명 헬퍼 의 샘플 " "백엔드를 조정하여 지정된 경우 XDG 구성 파일 위치를 준수하십시오.

의사는 이제 다음과 같이 말합니다.

지정하지 않은 경우 :

  • ~/.git-credentials및 에서 자격 증명을 검색 $XDG_CONFIG_HOME/git/credentials하고
  • 자격 증명이 ~/.git-credentials존재하거나 $XDG_CONFIG_HOME/git/credentials존재하고 이전이없는 경우 자격 증명이 기록됩니다 .

0

@ in password가 없으면 아래 cmd가 작동합니다. 암호에 @가 git pull https://username:pass@word@mygithost.com/my/repository 있으면 아래 그림과 같이 % 40으로 바꾸십시오. git pull https://username:pass%40word@mygithost.com/my/repository

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