비밀번호로 보호되는 공유 개발 서버에 개인 SSH 키가 있습니다.
로드한 후에도 ssh-agent
개인 키 비밀번호를 묻는 메시지가 다시 표시됩니다.
어떤 이유로 ssh-add
개인 키를 입력하고 비밀번호 프롬프트에 올바르게 응답한 후에도 이후에 동일한 개인 키 비밀번호를 입력하라는 메시지가 표시됩니다.다시, git pull
git에서 복제하면 동일한 호스트 이름에 동일한 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
내 항목 IdentityFile
에 github.com
to를 명시적으로 설정한 경우가 있습니다.~/.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
소켓이 있어야 합니다.