Capistrano 사용하여 일부 코드를 배포하려고 할 때도이 문제가 발생했습니다 . 매우 실망 스럽습니다. 이 문제를 해결하기 위해 내가 아는 두 가지 방법이 있습니다.
방법 1 : 알려진 모든 키를 SSH 에이전트에 추가하십시오 .
내가 찾은 한 가지 해결책은 다음 ssh-add
과 -A
같이 키 체인에 저장된 암호를 사용하여 SSH 에이전트에 알려진 모든 ID를 추가 하는 옵션 으로 실행 하는 것입니다.
ssh-add -A
이제는 작동하지만 재부팅해도 지속되지 않습니다. 따라서 다시 걱정하지 않으려면 다음 ~/.bash_profile
과 같이 사용자 파일을여십시오.
nano ~/.bash_profile
그리고 아래에이 줄을 추가하십시오 :
ssh-add -A 2>/dev/null;
이제 새로운 터미널 창을 열면 모든 것이 좋을 것입니다!
방법 2 : 키 체인 에있는 SSH 키만 에이전트에 추가하십시오.
따라서 ssh-add -A
가장 기본적인 경우 에는 옵션이 작동하지만 최근에 가장 일반적인 시스템 위에 6-7 Vagrant 상자 (액세스에 SSH 키 / ID를 사용하는)가 설치된 문제 id_rsa.pub
가 발생했습니다.
간단히 말해, 서버 액세스는 비밀번호를 기반으로하고 SSH 키 / 아이덴티티는 SSH 키 / 아이덴티티이므로 SSH 키 / 아이덴티티를 기반으로 너무 많은 실패한 시도로 인해 원격 서버에서 잠겼습니다. 그래서 SSH 에이전트는 모든 SSH 키를 시도했지만 실패했으며 암호 프롬프트를 볼 수 없었습니다.
문제는 ssh-add -A
필요하지 않더라도 에이전트에 필요한 모든 단일 SSH 키 / 아이덴티티를 임의로 추가 한다는 것입니다. 방랑 상자의 경우와 같이.
많은 테스트 후 내 솔루션은 다음과 같습니다.
먼저, 필요한 것보다 많은 SSH 키 / 아이덴티티를 에이전트에 추가 ssh-add -l
한 경우 다음 과 같이 에이전트에서 모두 제거하십시오.
ssh-add -D
그런 다음 SSH 에이전트를 백그라운드 프로세스로 시작하십시오.
eval "$(ssh-agent -s)"
이제 이상 해져서 왜 그런지 잘 모르겠습니다. 경우에 따라 다음 ~/.ssh/id_rsa.pub
과 같이 에이전트에 키 / ID를 구체적으로 추가 할 수 있습니다 .
ssh-add ~/.ssh/id_rsa.pub
암호를 입력하고 맞으면 Return가십시오.
그러나 다른 경우에는 단순히 이것을 실행하면 키 / 아이덴티티를 추가하기에 충분합니다.
ssh-add -K
모두 제대로 작동하면 입력하고 ssh-add -l
하나의 고독한 SSH 키 / 아이덴티티가 표시되어야합니다.
문제 없다? 이제 당신의 .bash_profile
:
nano ~/.bash_profile
그리고이 줄을 맨 아래에 추가하십시오. 해당 -A
버전이있는 경우 주석을 달거나 버전을 제거하십시오 .
ssh-add -K 2>/dev/null;
이렇게하면 시작 / 재부팅 할 때마다 SSH 키 / 아이덴티티를 SSH 에이전트로 다시로드 할 수 있습니다.
업데이트 : Apple은 이제 UseKeychain
열린 SSH 구성 옵션에 옵션을 추가 ssh-add -A
했으며 솔루션도 고려 합니다.
macOS Sierra 10.12.2부터 Apple UseKeychain
은 SSH 구성에 대한 구성 옵션을 추가했습니다 . 을 통해 매뉴얼 페이지를 확인하면 man ssh_config
다음 정보가 표시됩니다.
UseKeychain
On macOS, specifies whether the system should search for
passphrases in the user's keychain when attempting to use a par-
ticular key. When the passphrase is provided by the user, this
option also specifies whether the passphrase should be stored
into the keychain once it has been verified to be correct. The
argument must be ``yes'' or ``no''. The default is ``no''.
중 하나를 추가로 애플이 솔루션을보고 아래로 비등하는 ssh-add -A
에 .bash_profile
이 열기 레이더 티켓에 설명 된대로 또는 추가 UseKeychain
사용자 당에있는 옵션 중 하나 ~/.ssh/config
.