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_rsa 과 id_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.