이 오류가 발생했습니다.
$ git push heroku master
Warning: Permanently added the RSA host key for IP address '50.19.85.132' to the list of known hosts.
! Your key with fingerprint b7:fd:15:25:02:8e:5f:06:4f:1c:af:f3:f0:c3:c2:65 is not authorized to access bitstarter.
키를 추가하려고했는데 아래 오류가 발생합니다.
$ ssh-add ~/.ssh/id_rsa.pub
Could not open a connection to your authentication agent.
답변
시작 했습니까 ssh-agent
?
명령 ssh-agent
을 실행하기 전에 시작해야 할 수도 있습니다 ssh-add
.
eval `ssh-agent -s`
ssh-add
Windows 에서 msysgit Bash 에이전트가 시작됩니다 . 다른 쉘 또는 운영 체제를 사용하는 경우 다른 답변에 나열된 것과 같은 변형 명령을 사용해야 할 수도 있습니다 .
다음 답변을 참조하십시오.
- ssh-add가 불평합니다 : 인증 에이전트에 대한 연결을 열 수 없습니다
- 힘내 푸시에는 사용자 이름과 비밀번호가 필요합니다 (ssh-agent 사용 방법에 대한 자세한 지침 포함)
- 인증 에이전트를 실행하는 방법 (git / ssh)? .
- 인증 에이전트에 대한 연결을 열 수 없습니다
ssh-agent를 자동으로 시작하고 단일 인스턴스가 여러 콘솔 창에서 작동하게하려면 로그인시 ssh-agent 시작을 참조 하십시오 .
왜 우리 eval
대신에 사용해야 ssh-agent
합니까?
이유를 알아 보려면 Robin Green의 답변을 참조하십시오 .
공개 키와 개인 키
또한을 사용할 때마다 ssh-add
항상 개인 키를 추가합니다. 파일 ~/.ssh/id_rsa.pub
이 공개 키처럼 보이지만 제대로 작동하는지 잘 모르겠습니다. 당신은 가지고 있습니까 ~/.ssh/id_rsa
파일을? 텍스트 편집기에서 열면 개인 키라고 표시됩니까?
답변
다른 솔루션을 사용해 보았습니다. 나는 더 많은 연구를하고 다음 명령이 효과가 있음을 발견했습니다. Windows 7 및 Git Bash를 사용하고 있습니다.
eval $(ssh-agent)
자세한 내용은 https://coderwall.com/p/rdi_wq
답변
다음 명령이 나를 위해 일했습니다. CentOS를 사용하고 있습니다.
exec ssh-agent bash
답변
MsysGit 또는 Cygwin
Msysgit 또는 Cygwin을 사용하는 경우 SSH-Agent에서 msysgit 및 cygwin 및 bash의 유용한 자습서를 찾을 수 있습니다 .
-
.bashrc
홈 폴더에 파일을 추가하십시오 . -
파일을 열고 다음에 붙여 넣습니다.
#!/bin/bash eval `ssh-agent -s` ssh-add
-
이것은 키가 일반적인
~/.ssh/id_rsa
위치 에 있다고 가정합니다 . 그렇지 않은 경우ssh-add
명령 뒤에 전체 경로를 포함하십시오 . -
~/.ssh/config
내용으로 파일 추가 또는 생성ForwardAgent yes
원래 자습서에서
ForwardAgent
매개 변수는입니다Yes
만 오타입니다. 모두 소문자를 사용하면 오류가 발생합니다. -
Msysgit을 다시 시작하십시오. 암호 문구를 한 번 입력하라는 메시지가 표시되며 세션이 종료되거나 ssh 에이전트가 종료 될 때까지 완료됩니다.
맥 OS X
터미널을 열 때마다 새로운 ssh-agent를 시작하지 않으려면 Keychain을 확인하십시오 . 현재 Mac을 사용하고 있으므로 Mac OS X 에서 ssh-agent와 zsh & keychain 튜토리얼을 사용하여 설정했지만 Google 검색에는 Windows에 대한 많은 정보가 있어야합니다.
업데이트 : Mac에서 더 나은 솔루션은 Mac OS 키 체인에 키를 추가하는 것입니다.
ssh-add -K ~/.ssh/id_rsa
그렇게 간단합니다.
답변
인증 에이전트에 대한 연결을 열 수 없습니다
이 오류를 해결하려면
세게 때리다:
$ eval `ssh-agent -s`
tcsh :
$ eval `ssh-agent -c`
그런 다음 ssh-add
평소처럼 사용하십시오 .
핫 팁 :
위의 ssh-agent 명령에 입력 할 내용을 항상 잊어 버렸으므로 .bashrc
파일에 다음과 같이 별칭을 만들었습니다 .
alias ssh-agent-cyg='eval `ssh-agent -s`'
이제을 사용하는 대신 ssh-agent
사용할 수 있습니다.ssh-agent-cyg
예 :
$ ssh-agent-cyg
SSH_AUTH_SOCK=/tmp/ssh-n16KsxjuTMiM/agent.32394; export SSH_AUTH_SOCK;
SSH_AGENT_PID=32395; export SSH_AGENT_PID;
echo Agent pid 32395;
$ ssh-add ~/.ssh/my_pk
원래 수정 소스 :
답변
나는 리눅스에서 같은 문제에 직면했고, 여기 내가 한 일이있다.
기본적으로 ssh-agent 명령은 에이전트를 시작하지만 실제로 실행할 환경 변수를 설정하지는 않습니다. 해당 변수를 쉘에 출력합니다.
다음을 수행해야합니다.
eval `ssh-agent`
그런 다음 ssh-add를 수행하십시오. 인증 에이전트에 대한 연결을 열 수 없습니다를 참조하십시오 .
답변
ssh-add 및 ssh (openssh 구현을 사용한다고 가정)에는 ssh 에이전트와 통신하는 방법을 알기위한 환경 변수가 필요합니다. 현재 사용중인 것과 다른 명령 프롬프트 창에서 에이전트를 시작했거나 잘못 시작한 경우 환경 변수가 로컬 로 명령에 설정되어 있기 때문에 ssh-add 또는 ssh에서 해당 환경 변수 세트를 볼 수 없습니다. 메시지가 표시됩니다).
사용중인 ssh 버전을 말하지는 않지만 cygwin을 사용하는 경우 Cygwin의 SSH 에이전트 에서이 레시피를 사용할 수 있습니다 .
# Add to your Bash config file
SSHAGENT=/usr/bin/ssh-agent
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then
eval `$SSHAGENT $SSHAGENTARGS`
trap "kill $SSH_AGENT_PID" 0
fi
그러면 사용자가 연 각각의 새 명령 프롬프트 창에 대해 에이전트가 자동으로 시작됩니다 (한 세션에서 여러 명령 프롬프트를 열지 만 최소한 작동해야 함).