답변:
보낸 사람 man ssh-add
:
ssh-add는 개인 키 ID를 인증 에이전트 ssh-agent (1)에 추가합니다. 인수없이 실행하면 ~ / .ssh / id_rsa, ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa 및 ~ / .ssh / identity 파일이 추가됩니다. [...]
사용자 이외의 다른 사람이 ID 파일을 읽을 수 없어야합니다. ssh-add는 다른 사람이 액세스 할 수있는 ID 파일을 무시합니다.
따라서 The agent has no identities.
오류로 인해 해당 파일이 없거나 다른 사람들이 해당 파일에 액세스 할 수 있습니다. 다음 명령을 사용하여이를 확인할 수 있습니다.
ls -l ~/.ssh
또한 ssh-add
명령 을 실행 한 후 실행 echo $?
하여 이전 명령의 오류 상태를 확인하십시오. 종료 상태가 0을 리턴하면 명령이 성공적으로 실행 된 것입니다. 종료 상태가 0이 아닌 값을 반환하면 명령이 실행되지 않은 것입니다.
자세한 내용 man ssh-add
은 참조하십시오 .
ssh-keygen -q -t rsa -N 'password' -f ~/.ssh/id_rsa
하여 man ssh-keygen이 도움을주었습니다.
ssh-add
암호 문구를 입력 한 후 실행 할 때 아무런 출력 도 얻지 못했습니다 ( $?
1 에 따라 실패했습니다 chmod 600 ~/.ssh/id_rsa*
. 운이 없었지만 새 키를 처음부터 생성 한 ssh-keygen
다음 작동했습니다. 슬프지만 적어도 그것은 이제는 (실패한 키 ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
ssh-keygen
cd ~/.ssh && ls -lah
.ssh 폴더에서 읽기 / 쓰기 권한을 보려면 모든 키를 변경하십시오. )와 chmod 400 myKey
다음 ssh-add **ABSOLUTE**pathToKey
당신은 추가하지 않으면 절대 경로를, 그것은 작동하지 않습니다. 다음으로 테스트하십시오ssh -vT git@github.com
위의 고려 사항 외에도 대체 셸을 사용하는 경우 ssh-agent를로드하도록 구성해야 할 수도 있습니다. 예를 들어, zsh을에, 하나는 추가해야합니다 ssh-agent
에 plugins
에서 .zshrc
.
이 방법은 최신 Zsh를 사용하여 Ubuntu 17.10에서 잘 작동합니다.
다른 사람들은 id_ed25519
키 rsa
를 사용하여 플러그인없이 작업하고 있음을 발견했습니다 . 추가 한 다음 ssh-agent
에 ~/.zshrc
,와 쉘을 다시 시작 exec "$SHELL"
및 실행 :ssh-add ~/.ssh/id_ed25519
Enter passphrase for ~/.ssh/id_ed25519:
Identity added: ~/.ssh/id_ed25519 (user@host)
ssh-add
은 1이지만 0은 아닙니다. 파일이 만들어지지 않았기 때문에 내 권한에 약간의 문제가 있습니다. 어떻게 해결할 수 있습니까? 디렉토리~/.ssh
가 존재하지만 비어 있습니다.ls -l