programing

인증 에이전트에 대한 연결을 열 수 없습니다.

newsource 2023. 4. 25. 22:27

인증 에이전트에 대한 연결을 열 수 없습니다.

다음과 같은 오류가 발생했습니다.

$ 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에 대한 에이전트가 시작됩니다.다른 셸 또는 운영 체제를 사용하는 경우 다른 응답에 나열된 것과 같은 다른 명령을 사용해야 할 수 있습니다.

다음 답변을 참조하십시오.

  1. ssh-add 불만 사항:인증 에이전트에 대한 연결을 열 수 없습니다.
  2. Git push에는 사용자 이름과 비밀번호가 필요합니다(ssh-agent 사용 방법에 대한 자세한 지침이 포함되어 있습니다).
  3. 인증 에이전트를 실행하는 방법(git/ssh)을 선택하십시오.
  4. 인증 에이전트에 대한 연결을 열 수 없습니다.

ssh-agent를 자동으로 시작하고 단일 인스턴스가 여러 콘솔 창에서 작동하도록 허용하려면 로그인 시 ssh-agent 시작을 참조하십시오.

왜 우리가 사용해야 하죠?eval그냥 그런 게 아니라요ssh-agent무슨 일입니까

SSH를 사용하려면 백그라운드에서 실행되는 SSH 에이전트 인스턴스와 에이전트에 연결하는 데 사용해야 하는 소켓(SSH_AUTH_SOCK IIRC)을 SSH에 알려주는 환경 변수 집합의 두 가지가 필요합니다.SSH-에이전트만 실행하면 에이전트가 시작되지만 SSH는 에이전트를 찾을 수 없습니다.

댓글에서요.

공용 키와 개인 키입니다.

그리고 쓸 때마다요.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

인증 에이전트에 대한 연결을 열 수 없습니다.

이 오류를 해결하려면 다음과 같이 하십시오.

bash: 다음 명령을 사용합니다.

$ eval `ssh-agent -s`

tcsh: 를 클릭합니다.

$ eval `ssh-agent -c`

그럼 이렇게 쓰세요.ssh-add평소처럼요


Hot Tip(핫 팁):

의 ssh-agent 명령에 대해 항상 무엇을 입력해야 하는지 잊어버렸기 때문에 내 ssh-agent에 별칭을 만들었습니다..bashrc이겁니다.

alias ssh-agent-cyg='eval `ssh-agent -s`'

자, 그럼 이번에는 제제 using of now제 now now now now now now now now?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

원래 수정 소스:

http://cygwin.com/ml/cygwin/2011-10/msg00313.html

MsysGit 또는 Cygwin입니다.

Msysgit 또는 Cygwin을 사용하는 경우 SSH-Agent에서 msysgit 및 cygwin bash로 좋은 튜토리얼을 찾을 수 있습니다.

  1. 하다, 하다, 하다, 하다라는 파일을 추가합니다..bashrc이겁니다.

  2. 파일을 열고 붙여넣습니다.

    #!/bin/bash
    eval `ssh-agent -s`
    ssh-add
    
  3. 이것은 여러분의 키가 기존의 키와 같다고 가정합니다.~/.ssh/id_rsa그렇지 않다면 이 뒤에 전체 경로를 넣어야 합니다.ssh-add네, 그렇습니다.

  4. 파일을 추가하거나 만듭니다.~/.ssh/config내용물을 첨부해서

    ForwardAgent yes
    

    원본 자습서에서는 다음과 같습니다.ForwardAgentparam은 param입니다.Yes그런데 오타가 났어요소문자를 모두 사용하지 않으면 오류가 발생합니다.

  5. Msysgit을 다시 시작합니다.그러면 암호를 한 번 입력하라는 메시지가 표시됩니다(세션을 종료하지 않으면 ssh-에이전트가 종료될 때까지).

Mac/OS X입니다.

터미널을 열 때마다 새로운 ssh-agent를 시작하지 않으려면 Keychain을 확인하십시오.저는 지금 Mac을 사용하고 있기 때문에 Mac OS X에서 zsh & 키 체인과 함께 튜토리얼 ssh-agent를 사용하여 설정했지만, Google 검색에는 Windows에 대한 많은 정보가 있을 것입니다.

업데이트: Mac에서 더 나은 솔루션은 Mac OS 키체인에 키를 추가하는 것입니다.

ssh-add -K ~/.ssh/id_rsa

그렇게 간단해요.

달려.

ssh-agent bash
ssh-add

자세한 내용을 보려면 검색하십시오.

ssh-agent

또는 실행합니다.

man ssh-agent

ssh-add 및 ssh(openssh 구현을 사용하는 경우)에는 ssh 에이전트와 통신하는 방법을 알기 위한 환경 변수가 필요합니다.에이전트를 현재 사용 중인 명령 프롬프트 창과 다른 명령 프롬프트 창에서 시작했거나 잘못 시작한 경우 환경 변수가 설정된 명령 프롬프트에 로컬로 설정되므로 ssh-add 및 ssh 모두 해당 환경 변수 집합을 볼 수 없습니다.

어떤 버전의 ssh를 사용하고 있는지 말하지 않지만, sygwin을 사용하고 있다면 시그윈이요의 SSH Agent에서 다음 레시피를 사용할 수 있습니다.

# 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

이렇게 하면 여는 새 명령 프롬프트 창마다 에이전트가 자동으로 시작됩니다(한 세션에서 여러 명령 프롬프트를 여는 경우 차선책이지만 최소한 작동해야 합니다).

Linux에서도 같은 문제에 직면했고, 제가 한 일은 다음과 같습니다.

기본적으로 ssh-agent 명령은 에이전트를 시작하지만 에이전트를 실행할 환경 변수를 실제로 설정하지는 않습니다.이 변수들을 셸로 출력합니다.

다음을 수행해야 합니다.

eval `ssh-agent`

그리고 ssh-add를 합니다.인증 에이전트에 대한 연결을 열 수 없습니다를 참조하십시오.

이렇게 쓰는 게 아니라요.ssh-agent -s, 저는 , 을 사용했어요eval `ssh-agent -s` 네, 그렇습니다.

다음은 단계별로 수행한 작업입니다(Git Bash에서 2단계 이후).

  1. .ssh 폴더를 정리했습니다.C:\user\<username>\.ssh\
  2. SSH 키를 생성했습니다. 를 SSH 키 。ssh-keygen -t rsa -b 4096 -C "xyz@abc.com"
  3. 프로세스 ID(ssh 에이전트)가 이미 실행 중인지 확인하십시오. ps aux | grep ssh
  4. (선택사항) 3단계에서 발견되면 3단계에서 죽입니다kill <pids>
  5. SSH 에이전트 SSH를 했습니다.$ eval `ssh-agent -s`
  6. 2단계에서 생성된 SSH 키를 SSH 에이전트 2에 했습니다.ssh-add ~/.ssh/id_rsa

다음 단계를 수행하십시오.

  1. Git Bash를 열고 실행합니다.cd ~/.ssh

  2. 에이전트를 실행해 보십시오.eval $(ssh-agent)

  3. 지금 바로 다음 명령을 실행할 수 있습니다.ssh-add -l

Windows 10(윈도우 10)에서 여기에 나열된 모든 답변을 시도했지만 모두 작동하지 않았습니다.사실, 그들은 단서를 줍니다.문제를 해결하려면 세 가지 명령만 있으면 됩니다.이 문제의 개념은 ssh-add를 사용하려면 SSH_AUTH_SOCK 및 SSH_AGENT_PID 환경 변수를 현재 ssh-agent sock 파일 경로 및 pid 번호로 설정해야 한다는 것입니다.

ssh-agent -s > temp.txt

이렇게 하면 ssh-agent의 출력이 파일에 저장됩니다.텍스트 파일 내용은 다음과 같습니다.

SSH_AUTH_SOCK=/tmp/ssh-kjmxRb2764/agent.2764; export SSH_AUTH_SOCK;
SSH_AGENT_PID=3044; export SSH_AGENT_PID;
echo Agent pid 3044;

텍스트 파일에서 "/tmp/ssh-kjmxRb2764/agent.2764"와 같은 항목을 복사하고 콘솔에서 직접 다음 명령을 실행합니다.

set SSH_AUTH_SOCK=/tmp/ssh-kjmxRb2764/agent.2764

텍스트 파일에서 "3044"와 같은 항목을 복사하고 콘솔에서 직접 다음 명령을 실행합니다.

set SSH_AGENT_PID=3044

현재 콘솔 세션에 환경 변수(SSH_AUTH_SOCK 및 SSH_AGENT_PID)가 설정되면 ssh-add 명령을 실행하면 ssh 에이전트에 다시 연결할 수 있습니다.

한 가지 우연히 알게 된 것은, 그 일이었습니다.evalCygwin을 사용해도 가 없었고, 제게 효과가 있었던 것은 Cygwin이었습니다.ssh-agent ssh-add id_rsa요.

그 후 개인 키가 너무 열려 있다는 문제를 발견했는데, 이를 위한 솔루션을 여기서 찾을 수 있었습니다.

chgrp Users id_rsa

게다가

chmod 600 id_rsa

마침내 다음을 사용할 수 있었습니다.

ssh-agent ssh-add id_rsa

Windows 사용자의 cmd Windows를 찾았습니다.eval `ssh-agent -s` Git Bash를 사용하면 효과가 있었습니다.

eval `ssh-agent -s`; ssh-add KEY_LOCATION

Windows 서비스가 "Open"인지 확인합니다.SSH 키 관리"가 비활성화되지 않았습니다.

Windows 7에 대한 n3o의 답변을 자세히 알려면 다음과 같습니다.

문제는 일부 필수 환경 변수가 설정되지 않았다는 것입니다. ssh-agent가 이러한 환경 변수를 설정하는 방법을 알려 주지만 실제로 설정하지는 않는다는 n3o는 정확합니다.

Windows에서는 "평가"를 허용하지 않으므로 대신 다음과 같이 하십시오.

ssh-agent의 출력을 배치 파일로 리디렉션합니다.

ssh-agent > temp.bat

이제 메모장과 같은 텍스트 편집기를 사용하여 temp.bat을 편집합니다.처음 두 줄 각각에 대해 다음을 수행합니다.

  • "set" 단어와 줄의 시작 부분에 공백을 삽입합니다.
  • 첫 번째 세미콜론과 그 이후의 모든 항목을 삭제합니다.

이제 세 번째 줄을 삭제합니다.temp.bat의 모양은 다음과 같습니다.

set SSH_AUTH_SOCK=/tmp/ssh-EorQv10636/agent.10636
set SSH_AGENT_PID=8608

temp.bat를 실행합니다.이렇게 하면 ssh-add가 작동하는 데 필요한 환경 변수가 설정됩니다.

네, 그렇습니다.펴보세요.~/.ssh/configfile.filename

다음을 추가합니다.

Host github.com
 IdentityFile ~/.ssh/github_rsa

Set up SSH for Git 힌트를 준 페이지에서 단일 공간 들여쓰기가 중요하다고 했습니다...여기 헤로쿠에서 구성을 했는데 공간이 없어서 제대로 작동합니다.

이 지침을 따르면 문제가 해결됩니다.

Mac 또는 Linux 시스템을 사용하는 경우 다음과 같이 입력합니다.

eval "$(ssh-agent -s)"

Windows 시스템에 있는 경우 다음을 입력합니다.

ssh-agent -s

Ubuntu에서도 같은 문제가 있었고 다른 해결책들은 도움이 되지 않았습니다.

네, 그렇습니다.는 SSH에서 SSH 키를 만들었습니다./root/.ssh폴더 그래서 제가 실행해도, 폴, 래, 래, 그, 그, 그, 그, 그, folder, folder, folder, folder, folder, folder, folder, folder,ssh-add루트로써, 그것은 일을 할 수 없었고 계속 말했습니다:

인증 에이전트에 대한 연결을 열 수 없습니다.

공용 키와 개인 키를 SSH에 만들었습니다./home/myUsername/폴더와 제가 사용했어요.

ssh-agent /bin/sh

그리고 뛰었어요

ssh-add /home/myUsername/.ssh/id_rsa

그리고 문제는 이렇게 해결되었습니다.

참고: Git에서 저장소에 액세스하려면 SSH 키를 만들 때 Git 암호를 추가하십시오.ssh-keygen -t rsa -C "your Git email here"요.

다른 해결책을 제시하겠습니다.Git 1.8.2.2 이상을 설치하고 SSH를 활성화하려면 잘 작성된 지침을 따르십시오.

5.6단계까지 모두 진행하면 약간의 장애가 발생할 수 있습니다.SSH 에이전트가 이미 실행 중인 경우 bash를 다시 시작할 때 다음과 같은 오류 메시지가 표시될 수 있습니다.

Could not open a connection to your authentication agent

이 경우 다음 명령을 사용하여 둘 이상의 ssh-agent 프로세스가 실행 중인지 확인하십시오.

ps aux | grep ssh

둘 이상의 ssh-agent 서비스가 표시되면 이러한 프로세스를 모두 중지해야 합니다.다음과 같이 kill 명령을 사용합니다(PID는 컴퓨터에서 고유합니다).

kill <PID>

예를 들어 다음과 같습니다.

kill 1074

모든 ssh-agent 프로세스를 제거한 후 px aux | grep ssh 명령을 다시 실행하여 프로세스가 사라졌는지 확인한 다음 Bash를 다시 시작합니다.

Voila, 이제 당신은 이런 것을 얻어야 합니다.

Initializing new SSH agent...
succeeded
Enter passphrase for /c/Users/username/.ssh/id_rsa:

이제 5.7단계 이상을 계속할 수 있습니다.

이렇게 하면 SSH 에이전트가 실행되고 Bash 터미널을 열 때마다 인증되지 않고 처음 필요할 때만 인증됩니다.일반적으로 SSH를 사용하는 모든 프로그램에 사용할 수 있습니다.ssh그 자체와. 이 항목을 에 추가합니다./etc/profile.d/ssh-helper.sh다음을 참조하십시오

ssh-auth() {
    # Start the SSH agent only if not running
    [[ -z $(ps | grep ssh-agent) ]] && echo $(ssh-agent) > /tmp/ssh-agent-data.sh

    # Identify the running SSH agent
    [[ -z $SSH_AGENT_PID ]] && source /tmp/ssh-agent-data.sh > /dev/null

    # Authenticate (change key path or make a symlink if needed)
    [[ -z $(ssh-add -l | grep "/home/$(whoami)/.ssh/id_rsa") ]] && ssh-add
}

# You can repeat this for other commands using SSH
git() { ssh-auth; command git "$@"; }

참고: 이 질문과 병합된 이 질문에 대한 답변입니다. 이 질문은 Windows 7에 대한 것으로, 즉 Cygwin/MSYS/MSYS2에 대한 답변이었습니다. 이것은 SSH 에이전트를 이렇게 관리할 필요가 없는 Unix의 경우인 것 같습니다.

기본 해결법은 '실행동하기 위한 기본 해결법입니다.ssh-agent많은 대답으로 대답합니다.하지만 달리기는요.ssh-agent 번(개봉된 각 단말기 또는 원격 로그인당)은 많은 복사본을 만듭니다.ssh-agent이겁니다.이 문제를 피하기 위해 되는 스크립트는 구분된 파일을 쓰거나 복사해야 너무 많은 문자열을 써야 합니다.~/.profile아니면요?~/.schrc. 간단한 두 가지 스트링 솔루션을 제안합니다.

sh, bash 등의 경우 다음을 수행합니다.

# ~/.profile
if ! pgrep -q -U `whoami` -x 'ssh-agent'; then ssh-agent -s > ~/.ssh-agent.sh; fi
. ~/.ssh-agent.sh

csh, tcsh 등의 경우 다음을 수행합니다.

# ~/.schrc
sh -c 'if ! pgrep -q -U `whoami` -x 'ssh-agent'; then ssh-agent -c > ~/.ssh-agent.tcsh; fi'
eval `cat ~/.ssh-agent.tcsh`

다음은 무엇입니까?

  • 과정을 검색해 보세요.ssh-agent 및 현재 사용자별입니다.
  • 을 호출하여 적절한 셸 스크립트 파일을 만듭니다.ssh-agent뛰어요.ssh-agent현재 사용자가 없는 경우 그 자체입니다.ssh-agent프로세스를 찾았습니다.
  • 적절한 환경을 구성하는 생성된 셸 스크립트를 평가합니다.

생성된 셸 스크립트를 보호할 필요는 없습니다.~/.ssh-agent.tcsh아니면요?~/.ssh-agent.sh다른 사용자의 액세스 이유는 다음과 같습니다. 처음 통신하다ssh-agent는 다른 사용자가 액세스할 수 보호된 소켓을 통해 처리되며, 다른 사용자가 바로 찾을 수 있습니다.ssh-agent소켓은 소은열 ineration ineration in in in in in in in in in in in in in in파일로 단순합니다./tmp/디렉토리입니다.접속에 관한 한입니다.ssh-agent과정도 마찬가지입니다.

Windows 10에서는 명령 프롬프트 터미널을 사용하여 다음 작업을 수행할 수 있습니다.

ssh-agent cmd 
ssh-add

그런 다음 암호를 입력하라는 메시지가 표시됩니다.

Enter passphrase for /c/Users/username/.ssh/id_rsa:

다음을 시도해 보십시오.

ssh-agent sh -c 'ssh-add && git push heroku master'

서버에 연결할 때 매개 변수 -A를 사용합니다. 예:

ssh -A root@myhost

man 페이지에서 다음을 수행합니다.

-A Enables forwarding of the authentication agent connection.  
   This can also be specified on a per-host basis in a configuration file.

   Agent forwarding should be enabled with caution.  Users with the ability to bypass file permissions on the remote host (for the agent's
   UNIX-domain socket) can access the local agent through the forwarded 
   connection.  An attacker cannot obtain key material from the agent,
   however they can perform operations on the keys that enable them to
   authenticate using the identities loaded into the agent.

ssh-agent를 시작할 때 이미 실행 중일 때 이 문제가 발생했습니다.여러 인스턴스가 서로 충돌하는 것 같습니다.

SSH-에이전트가 이미 실행 중인지 확인하려면 SSH_AGENT_SOCK 환경 변수 값을 다음과 같이 확인하십시오.

echo $SSH_AGENT_SOCK

설정된 경우 에이전트가 실행 중일 수 있습니다.

둘 이상의 ssh-에이전트가 실행 중인지 확인하려면 다음을 검토할 수 있습니다.

ps -ef | grep ssh

물론 생성한 추가 인스턴스를 모두 중지해야 합니다.

설명은 사용자 456814의 답변을 참조하십시오.여기서는 수정 작업만 자동화하려고 합니다.

Bash와 함께 Cygwin 터미널을 사용하는 경우 $HOME/.bashrc 파일에 다음을 추가하십시오.이렇게 하면 첫 번째 Bash 터미널에서 ssh-agent가 한 번만 시작되고 ssh-agent에 키가 추가됩니다(Linux에서 이 작업이 필요한지 잘 모르겠습니다).

###########################
# start ssh-agent for
# ssh authentication with github.com
###########################
SSH_AUTH_SOCK_FILE=/tmp/SSH_AUTH_SOCK.sh
if [ ! -e $SSH_AUTH_SOCK_FILE ]; then
    # need to find SSH_AUTH_SOCK again.
    # restarting is an easy option
    pkill ssh-agent
fi
# check if already running
SSH_AGENT_PID=`pgrep ssh-agent`
if [ "x$SSH_AGENT_PID" == "x" ]; then
#   echo "not running. starting"
    eval $(ssh-agent -s) > /dev/null
    rm -f $SSH_AUTH_SOCK_FILE
    echo "export SSH_AUTH_SOCK=$SSH_AUTH_SOCK" > $SSH_AUTH_SOCK_FILE
    ssh-add $HOME/.ssh/github.com_id_rsa 2>&1 > /dev/null
#else
#   echo "already running"
fi
source $SSH_AUTH_SOCK_FILE

"ssh-add" 명령에 올바른 키를 추가하는 것을 잊지 마십시오.

SSH를 통해 저장 장치에 연결하기 위해 Windows에서 이 기능을 작동시키려 할 때도 비슷한 문제가 발생했습니다.

여기 제게 효과가 있었던 해결책이 있습니다.

  1. Windows 상자에서 Peates ssh 에이전트를 실행 중이었습니다. 실행 중인 에이전트를 확인해보겠습니다.PuTTY와 WinSCP에 기본 제공되므로 Peates가 의심됩니다.

  2. 이 유형의 에이전트에서는 명령줄에서 ssh-add가 작동하지 않습니다.

  3. 시작 후 작업 표시줄에서 미인대회 아이콘을 두 번 클릭하여 얻을 수 있는 미인대회 UI 창을 통해 개인 키를 추가해야 합니다.

  4. 키를 미인대회에 추가하기 전에 키를 PPK 형식으로 변환해야 합니다.SSH 키를 ppk 형식으로 변환하는 방법은 여기를 참조하십시오.

  5. 바로 그거에요.키를 stash에 업로드한 후 Sourcetree를 사용하여 로컬 저장소를 만들고 리모컨을 복제할 수 있었습니다.

Windows 10에 내장된 Bash의 경우 .bash_profile 파일에 다음과 같이 추가했습니다.

if [ -z $SSH_AUTH_SOCK ]; then
    if [ -r ~/.ssh/env ]; then
            source ~/.ssh/env
            if [ `ps -p $SSH_AGENT_PID | wc -l` = 1 ]; then
                    rm ~/.ssh/env
                    unset SSH_AUTH_SOCK
            fi
    fi
fi

if [ -z $SSH_AUTH_SOCK ]; then
    ssh-agent -s | sed 's/^echo/#echo/'> ~/.ssh/env
    chmod 600 ~/.ssh/env
    source ~/.ssh/env > /dev/null 2>&1
fi

Windows 8.1 E에서 Git Bash를 사용했을 때의 해상도는 다음과 같습니다.

eval $(ssh-agent) > /dev/null
ssh-add ~/.ssh/id_rsa

Git 프로세스(ssh 에이전트)를 강제로 중지(절단)한 후 Git을 제거한 후 Git을 다시 설치하여 오류를 해결했습니다.

전 이게 효과가 있었어요.

CMD 창에서 다음 명령을 입력합니다.

cd path-to-Git/bin # (for example,cd C:\Program Files\Git\bin)
bash
exec ssh-agent bash
ssh-add path/to/.ssh/id_rsa

언급URL : https://stackoverflow.com/questions/17846529/could-not-open-a-connection-to-your-authentication-agent 입니다.