SSH 비밀번호를 다시 입력하지 않고 어떻게`git pull`을 수행 할 수 있습니까?


96

git/ssh을 수행 할 때마다 암호를 입력 할 필요가 없도록 구성 할 수 git pull있습니까? 저장소는 github의 개인 저장소입니다.

또는 개인 Github 저장소에서 코드 배포를 자동화하는 가장 좋은 방법은 무엇입니까?

추가 세부 정보 : Fedora를 기반으로 퍼블릭 AMI를 실행하는 EC2 인스턴스.



이 문제의 해결책이 있습니까?
nim

git 2.11+ (2016 년 4 분기)에서 libsecret을 사용하는 것은 또 다른 방법입니다. stackoverflow.com/a/40312117/8477066
Hielke Walinga

답변:


69

이 링크 https://help.github.com/articles/working-with-ssh-key-passphrases/를 살펴보십시오.

하지만 키를 사용할 때마다 긴 암호를 입력하고 싶지 않습니다!

나도 마찬가지야! 고맙게도 ssh-agent암호를 안전하게 저장하여 다시 입력 할 필요가없는 멋진 도구 가 있습니다. OSX Leopard 이상을 사용하는 경우 시스템의 키 체인에 키를 저장하여 생활을 더 쉽게 할 수 있습니다. 대부분의 Linux 설치는 로그인 할 때 자동으로 ssh-agent를 시작합니다.


3
17.7k 평판을 가진 사람에게 약간 긴장된 대답; 나는 질문 ... ;-) 잘못 해석 않았다
프레드릭 Pihl

3
긴장한? 안심 : 사람들의 대부분이 여기에 아주 잘 예의 바른 있습니다 ...이 아니라 사람들이 아니라, 그들이 : 나보다 더 큰 문제가
jldupont

2
이 링크는 사용자의 암호가 저장 얻을 순서로 실행 명령을 무엇을 설명하는 데 도움이되었다 ssh-agent: rabexc.org/posts/using-ssh-agent
마테우스 Gondim을

키를 사용하고 싶지 않습니다. 간단하게 user \ pass가 있고 git 클라이언트 측에 저장하고 싶습니다
nim

링크가 Mac / Widows 옵션 만 제공하는 이유는 무엇입니까? 패스를 다시 입력하지 않고 유닉스 서버에서 git pull을하고 싶습니다. 역사적인 프로젝트를 위해 작동하도록 관리했지만 내가 거기서 무엇을했는지 말할 수 없습니다. 원격 유닉스 시스템에 ssh 할 때 키가 전달되고 대신 git pull (또는 개인 작성기 vcs) 키로 사용된다는 점이 있습니까? 여기에서 뭔가 오해하고 있다고 생각합니다. 어떤 도움 :) 감사
trainoasis

29

여기에 설명 된대로 암호 캐싱을 활성화했습니다.

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

한 달 동안 암호를 캐시하려면 :

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

고마워요, temuri-이 정확한 세부 사항을 모든 곳에서 찾고있었습니다. 작동하지 않았지만 문서에는 HTTPS 전용이라고 언급되지 않은 것 같습니다.
마이크 에머리

2
원격 Git 저장소의 SSH 기반 URL에 비밀번호 ( 키 파일이있는 비밀번호 문구 아님) 를 사용하는 경우 비밀번호 를 전혀 저장할 수 없습니다. 그러나 git 명령을 실행 한 후 즉시 암호를 입력하고 Enter 키를 누를 수 있음을 알았습니다 . 암호 프롬프트가 나타날 때까지 기다릴 필요가 없습니다.
ADTC

1
git still ask pass
nim

12

이 시도:

git config credential.helper store

암호를 한 번 입력해야 루트 내의 폴더에 저장됩니다.

의견이 지적했듯이 이것은 SSH 암호에는 작동하지 않으며 HTTPS 암호에만 적용됩니다.


1
@nim 그렇다고 대답에 반대 투표를해야한다는 의미는 아닙니다. 저에게 효과가있는 것을 제안했으며 누군가 도움이 될 수도 있습니다.
Yankee

저장 암호가 아닙니다. 나는 그것을 시도하고 결과가 없습니다. 이 ssh : // name @ ip / path와 같은 원격이라면
nim

1
HTTP 기본 인증 비밀번호를 저장하려는 경우 작동합니다.
Phil

4
이것은 SSH 암호에 대해서는 작동하지 않으며 HTTPS 암호에 대해서만 작동합니다.
Eliezer Berlin

https에서 잘 작동합니다. 이것을 입력하기 만하면됩니다. 다음 번은 의역을 입력해야하는 마지막 시간이어야합니다. 다음에 git이 암호를 기억해야합니다.
Jonathan

7

당신의 상황은 이제 고정되었지만 나에게는 하나 이상의 키가 있다는 사실이었습니다. ~/.ssh/

문제를 해결하려면라는 파일을 만들고 ~/.ssh/config다음 줄을 추가해야했습니다.

IdentityFile ~/.ssh/my_key2_rsa

~/.ssh/my_key2_rsa내 열쇠는 어디에 있습니까 .


1
감사합니다. 내 파일 id_rsaid_rsa.pub파일에는 사용자 정의 이름이 있으므로 git이 인식하지 못할 것입니다. ref : linux.die.net/man/5/ssh_config
lasec0203

5

아직 아무도 이것을보고하지 않은 이유를 모르겠습니다. 그러나 가장 간단한 방법은 AddKeysToAgent yes.ssh / config 파일 위에 한 줄만 추가하는 것 입니다. 물론 ssh-agent미리 실행해야합니다. 실행되지 않는 경우 ( ssh-agent터미널 의 명령 으로 확인 ) 간단히 실행하십시오.eval $(ssh-agent)

많은 하위 모듈이있는 내 프로젝트와 복제되는 각 하위 모듈에 대해 ssh 암호를 입력해야했기 때문에 이것이 작동하는지 확인할 수 있습니다. 위의 트릭 후에는 더 이상 할 필요가 없습니다.

솔루션의 소스는 /ubuntu/362280/enter-ssh-passphrase-once/853578#853578입니다.


이것은 절대적으로 정답입니다. 또한, 하나는 systemd 사용자 서비스를 사용할 수있는 실행 SSH 에이전트를합니다
someonewithpc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.