git에서 ssh 키의 암호를 묻지 않는 방법은 무엇입니까?


43

git bash를 사용하고 ssh-keygen을 사용하여 ssh 키를 설정하고 repo git으로 무언가를 할 때마다 암호 문구를 묻습니다 /c/Users/jankiewj/.ssh/id_rsa. 해당 암호를 비활성화하는 방법이 있습니까?


저기 serverfault의 힘 도움말에이 페이지 serverfault.com/questions/194567/...

@Radoo 도움이되지 않았습니다.
jcubic

답변:


56

git bash에서 이것을 실행할 수 있습니다 :

eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa

두 번째 명령에서 암호 문구를 요구할 것입니다. 수행해야 할 각 추가 작업 (한 번 암호 문구 필요)은 암호 문구를 요구하지 않습니다 (아래 스크린 샷의 예 참조).

Windows에서 git bash에 암호 문구 추가


7
git bash를 닫 자마자 다시 입력해야합니다 ... 영구적 인 해결책이 있습니까?
Black

@Black bash 세션 당입니다 .git bash를 .bashrc열 때마다 프롬프트가 표시되고 해당 세션에 대해 모두 설정되었습니다.
jcubic

.bashrc에 정확히 무엇을 넣습니까? 그리고 .bashrc는 어디에 있습니까?
Black

편집 : nevermind, 당신은 파일을 ~/.bashrc만든 다음 게시물의 줄을 입력하고 저장하면됩니다 :) thx!
Black

위의 행을 사용하는 대신, 특히에서 .bashrc스크립트를 사용하여 .bash_profile또는 에 배치합니다 .profile. 여기 내 주요 부분의 스 니펫 .bash_profile이 있습니다. 아직 답을 찾고있는 사람은이 문제를 해결해야합니다. 아래 답변과 비슷합니다. 스크립트 상단에 my를로드합니다 .bashrc. 적용 할 수없는 경우에는 그대로 두십시오. 참고 : id_rsa개인 SSH 키의 이름과 경로에 대한 참조를 변경해야 합니다.
Rockin4Life33

9

약간 더 좋고 영구적 인 해결책 은 Windows에서 git bash를 열 때 ssh-agent를 자동으로 시작하는 것입니다. .profile 또는 .bashrc에서 아래를 복사하여 붙여 넣을 수 있습니다. 나는 그것을 .profile 에 두는 것을 선호합니다.

env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
    (umask 077; ssh-agent >| "$env")
    . "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add
fi

unset env

이 솔루션은 이 github 도움말에서 가져 왔습니다.


간단한 코드를에 넣었습니다. .bashrc솔루션이 어떻게 다른가요? Windows bash에서 각 쉘은 독립적이므로 쉘을 실행할 때 에이전트가 실행되지 않습니다.
jcubic

코드를에 삽입하면 문제가 해결됩니다 .bashrc. 처음에만 ssh 암호문을 프롬프트합니다. 내 인생을 보호했다. 감사합니다.
벤 아 스무 센

덕분에 저의 생명을 구할 수있었습니다.
gumuruh

이것은 지속적이고 OP가 요구하는 것으로 생각하는 것을 더 잘 충족시키는 솔루션을 제시하므로 실제로 받아 들여지는 대답이어야합니다.
Richard D

실수로 잘못된 비밀번호를 입력 한 경우 어떻게해야합니까? 편집 : superuser.com/a/271673/647110에 따라 ssh-add -D모든 키를 삭제할 수 있습니다 .
Nils Guillermin

1

내가 그것을 추천하고 싶은지 확실하지 않지만, 당신이 키를 생성하고 암호를 설정하도록 요청했을 때, 그냥 Enter를 누르고 암호를 건너 뛰십시오.

사용 방법에 대한이 링크를 살펴보십시오 ssh-keygen: https://help.github.com/articles/working-with-ssh-key-passphrases/

어쩌면 ssh-agent당신을 도울 수 있습니다. 그러나 현재 시스템을 모르면 확실하지 않습니다.


4
정답은 아닙니다
Kennet Celeste

"새로운 SSH 키를 생성하고 ssh-agent에 추가"github 안내서의 모든 단계를 수행 한 후에는 항상 암호 문구를 요구했습니다. 추가 한 후에도. mvn release:perform단계적으로 암호 문구를 제공하지 않고 릴리스 태그를 체크 아웃하려고하기 때문에 그 동작은 maven 배포 흐름을 방해 했습니다. 따라서 암호를 지우는 것만 으로이 문제가 해결되었습니다.
페르난도 미구엘 카르발류의

-3

repos 위치 " ssh-keygen -p " 에이 git 명령 을 입력하면 키 파일 위치, 이전 암호 구 및 새 암호 구를 입력하라는 메시지가 표시됩니다 (비밀번호를 사용하지 않으려면 비워 둘 수 있음). 새 비밀번호를 입력하지 않으면 비밀번호 문구가 제거됩니다.


1
빈 암호를 남겨 두는 것은 안전하지 않으며 많은 회사 개발자는 제한 때문에 빈 암호를 사용할 수 없습니다. OP 문제에 대한 해결책이 아니라 절름발이 해결책입니다.
cbaldan

아마도 절름발이이지만 현지에서만 사용하는 Tasty and expeditious ™
Jim P
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.