단일 세션에서 SSH 개인 키 비밀번호를 반복적으로 묻는 메시지가 표시됩니다.

단일 세션에서 SSH 개인 키 비밀번호를 반복적으로 묻는 메시지가 표시됩니다.

비밀번호로 보호되는 공유 개발 서버에 개인 SSH 키가 있습니다.

로드한 후에도 ssh-agent개인 키 비밀번호를 묻는 메시지가 다시 표시됩니다.

어떤 이유로 ssh-add개인 키를 입력하고 비밀번호 프롬프트에 올바르게 응답한 후에도 이후에 동일한 개인 키 비밀번호를 입력하라는 메시지가 표시됩니다.다시, git pullgit에서 복제하면 동일한 호스트 이름에 동일한 ID 파일을 사용합니다.

다음과 같이 로그인한 후 SSH 설정을 로드합니다.

➜  ~ cat ~/init_ssh 
#!/usr/bin/env bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

스크립트를 실행하고 비밀번호 프롬프트에 올바르게 응답합니다.

➜  ~ ~/init_ssh
Agent pid 11612
Enter passphrase for /home/username/.ssh/id_rsa: 
Identity added: /home/username/.ssh/id_rsa (/home/username/.ssh/id_rsa)

그런 다음 또는 특정 저장소에서 clone 을 실행 git pull하고git push매번SSH 비밀번호를 다시 입력해야 합니다.

➜  repository_clone git:(master) git pull
Enter passphrase for key '/home/username/.ssh/id_rsa': 
Already up-to-date.
➜  repository_clone git:(master) git pull
Enter passphrase for key '/home/username/.ssh/id_rsa': 
Already up-to-date.

호스트 이름은 IdentityFile다음에서 구성 됩니다.~/.ssh/config

내 항목 IdentityFilegithub.comto를 명시적으로 설정한 경우가 있습니다.~/.ssh/id_rsa~/.ssh/config

➜  repository_clone git:(master) cat ~/.ssh/config
Host github.com
    IdentityFile ~/.ssh/id_rsa

위의 SSH 구성 항목을 제거해도 영구 비밀번호 재요청과 관련된 동일한 문제가 여전히 발생합니다.

파일 권한이 올바릅니다.

그 사이에 나는 ~디렉토리와 파일에 대한 모든 권한이 있어야 한다는 것을 확인했습니다.~/.ssh~/.ssh/id_rsa이 가이드:

➜  ~ ls -la ~ ~/.ssh ~/.ssh/id_rsa
-rw-------  1 username username 3326 Sep 21 16:53 /home/username/.ssh/id_rsa

/home/username:
total 220
drwxr-xr-x  13 username username  4096 Sep 27 17:11 .
drwxr-xr-x  24 root     root      4096 Sep 21 16:09 ..
# [...]

/home/username/.ssh:
total 36
drwxr-xr-x  2 username username 4096 Sep 27 17:07 .
drwxr-xr-x 13 username username 4096 Sep 27 17:11 ..
-rw-r--r--  1 username username  745 Sep 21 16:43 authorized_keys
-rw-------  1 username username  455 Sep 27 17:07 config
-rw-------  1 username username 3326 Sep 21 16:53 id_rsa
-rw-r--r--  1 username username  744 Sep 21 16:53 id_rsa.pub
-rw-r--r--  1 username username 3794 Sep 26 16:28 known_hosts

나는 완전히 어리둥절하다! 누구든지 올바른 방향으로 나를 가리킬 수 있습니까? 감사해요!

답변1

~/init_ssh시작하는 에이전트는 키를 로드한 후 즉시 종료되는 스크립트에서만 사용할 수 있습니다 .

source ~/init_ssh파일 또는 이에 상응하는 파일을 사용 하거나 넣으십시오 eval "$(ssh-agent -s)"..profile

프록시가 로드되면 $SSH_AUTH_SOCK소켓이 있어야 합니다.

관련 정보