无法打开到您的身份验证代理的连接无法打开到您的身份验证代理的连接(Could not open a

2019-05-08 17:59发布

我遇到的这个错误:

$ 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.

Answer 1:

什么时候开始ssh-agent

您可能需要启动ssh-agent在运行前ssh-add命令:

eval `ssh-agent -s`
ssh-add

请注意,这将开始在Windows msysgit猛砸剂。 如果您使用的是不同的外壳或操作系统,你可能需要使用命令的变体,如在列出的其他答案 。

请参阅以下答案:

  1. SSH-加抱怨:无法打开您的认证代理的连接
  2. 混帐推需要用户名和密码 (包含如何使用ssh-agent的详细说明)
  3. 如何运行(GIT / SSH)认证代理? 。
  4. 无法打开到您的身份验证代理的连接

要自动启动ssh-agent和允许单个实例在多个控制台窗口的工作,看到在登录时启动的ssh-agent 。

我们为什么需要使用eval ,而不是仅仅ssh-agent

为了找出原因,看罗宾·格林的答案 。

公共VS私钥

此外,每当我使用ssh-add ,我总是私钥添加到它。 该文件~/.ssh/id_rsa.pub看起来像一个公共密钥,我不知道是否会工作。 你有一个~/.ssh/id_rsa文件? 如果您在文本编辑器打开它,它说这是一个私钥?



Answer 2:

我试过其他的解决方案无济于事。 我做更多的研究,结果发现下面的命令工作。 我使用的是Windows 7和Git的猛砸 。

eval $(ssh-agent)

:在更多信息https://coderwall.com/p/rdi_wq



Answer 3:

下面的命令为我工作。 我使用CentOS的。

exec ssh-agent bash


Answer 4:

MsysGit或Cygwin的

如果您使用Msysgit或Cygwin的你可以找到一个很好的教程SSH代理在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 

    在原来的教程ForwardAgent参数是Yes ,但它是一个错字。 全部使用小写,否则你会得到错误。

  5. 重新启动Msysgit。 它会问你输入一次你的密码,这就是它(直到结束会话,或你的ssh-agent被杀害。)

MAC / OS X

如果你不希望每次打开一个终端时间开始新的ssh-agent,检查钥匙扣 。 我在Mac上了,所以我使用的教程的ssh-agent与zsh的钥匙扣和Mac OS X上设置它,但我敢肯定,谷歌搜索将有大量的信息为Windows。

更新 :在Mac上更好的解决方案是将您的键添加到Mac OS的钥匙扣:

ssh-add -K ~/.ssh/id_rsa

就那么简单。



Answer 5:

无法打开到您的身份验证代理的连接

要解决此错误:

庆典:

$ 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

修复的原始来源:

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



Answer 6:

我面临着同样的问题适用于Linux,这里是我做过什么:

基本上,该命令的ssh-agent启动代理,但它并没有真正设置环境变量来运行它。 它只是输出这些变量的外壳。

你需要:

eval `ssh-agent`

然后做SSH-ADD。 见无法打开您的认证代理的连接



Answer 7:

SSH-add和SSH(假设你使用OpenSSH的实现)需要一个环境变量知道如何去跟SSH代理。 如果您在不同的命令提示符窗口中启动代理到一个你现在使用,或者如果错误地启动它,无论是SSH-添加也不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

这将自动启动代理为你打开每一个新的命令提示符窗口(如果你在一个会话中打开多个命令提示符这是最理想的,但至少它应该工作)。



Answer 8:

尝试以下步骤:

1)打开GIT中击和运行: cd ~/.ssh

2)尝试运行代理: eval $(ssh-agent)

3)现在,你可以运行下面的命令: ssh-add -l



Answer 9:

而不是使用$ ssh-agent -s ,我用$ eval `ssh-agent -s`来解决这个问题。

以下是我一步(上GitBash步骤2起)执行步骤:

  1. 清理我的.ssh夹在C:\user\<username>\.ssh\
  2. 产生一个新的SSH密钥
    $ ssh-keygen -t rsa -b 4096 -C "xyz@abc.com"
  3. 检查是否有任何进程ID(SSH代理)已经在运行。
    $ ps aux | grep ssh
  4. (可选)如果发现任何在步骤3中,杀死那些
    $ kill <pids>
  5. 启动SSH代理
    $ eval `ssh-agent -s`
  6. 在步骤2至SSH剂产生加入ssh密钥
    $ ssh-add ~/.ssh/id_rsa


Answer 10:

在Windows 10我想在这里列出的所有答案,但没有人似乎工作。 事实上,他们提供线索。 为了解决一个问题简单,你需要3个命令。 这个问题的想法是,SSH-ADD需要SSH_AUTH_SOCK和SSH_AGENT_PID环境变量与当前的ssh-agent袜子文件的路径和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代理。



Answer 11:

我碰到的一件事是, eval没有为我使用Cygwin,什么工作对我来说是工作ssh-agent ssh-add id_rsa

在那之后我碰到的一个问题,我的私钥太开来了,解决我设法找到该(来自这里 ):

chgrp Users id_rsa

以及

chmod 600 id_rsa

最后我能够使用:

ssh-agent ssh-add id_rsa


Answer 12:

要在n3o的回答放大为Windows 7 ...

我的问题是确实是一些必需的环境变量未设置,并n3o是正确的,SSH代理告诉您如何设置这些环境变量,但实际上并没有设置。

由于Windows不会让你做“EVAL,”这里是做什么,而不是:

重定向的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-添加工作。



Answer 13:

ssh-agent bash
ssh-add

为了获得更多的细节,你可以搜索

ssh-agent

或运行

man ssh-agent


Answer 14:

我刚刚得到这个工作。 打开你~/.ssh/config文件。

追加以下事项

Host github.com
 IdentityFile ~/.ssh/github_rsa

这给了我提示的页面设置SSH GIT中说,单一的空间缩进是非常重要的...虽然我曾在这里从Heroku的配置是没有这个空间和工作正常。



Answer 15:

如果您按照这些说明,您的问题将得到解决。

如果你在Mac或Linux计算机上键入:

eval "$(ssh-agent -s)"

如果你在Windows机器上,键入:

ssh-agent -s


Answer 16:

让我提供另一种解决方案。 如果您刚刚安装的Git 1.8.2.2点左右,并要启用SSH,跟随良好writen 方向 。

通过一切步骤5.6,你可能会遇到一个轻微的障碍。 如果一个SSH代理已经在运行,当你重新启动bash,那么你可以得到下面的错误信息

Could not open a connection to your authentication agent

如果这样做,使用下面的命令来查看如果超过一个ssh-agent进程正在运行

ps aux | grep ssh

如果你看到一个以上的SSH代理服务,你需要杀死所有这些进程。 按如下方式使用kill命令(PID能够在您的计算机上是唯一的)

kill <PID>

例:

kill 1074

您已删除了所有的ssh-agent程序后,运行 再次命令,以确保他们都走了,然后重新启动猛砸。

瞧,你现在应该得到的东西是这样的:

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

现在,你就可以继续步骤5.7和超越。



Answer 17:

注:这是一个回答这个问题 ,已合并与这一个。 这个问题是针对Windows 7,这意味着我的答案是对的Cygwin / MSYS / MSYS2。 这一次似乎对一些UNIX,在那里我不会期望SSH代理需要像这样进行管理。

这将运行SSH代理和认证仅在第一次,你需要它 ,而不是每次你打开你的Bash终端的时间。 它可用于一般使用SSH任何方案,包括的ssh本身和scp。 只需添加这/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 "$@"; }


Answer 18:

当您连接到服务器,例如使用参数-A:

ssh -A root@myhost

从手册页:

-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.


Answer 19:

基本的解决方案来运行ssh-agent在很多答案被回答。 然而乳宁ssh-agent多次(每个打开终端或每个远程登录)将创建一个许多拷贝OT ssh-agent在内存中运行。 这是建议,以避免这个问题很长,需要的脚本编写和/或分离复制文件或需要写太多的字符串~/.profile~/.schrc 。 让我提出简单的两线的解决方案:

对于sh, 庆典等:

# ~/.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的名称和当前用户
  • 通过调用创建相应的shell脚本文件ssh-agent和运行ssh-agent本身,如果没有当前用户ssh-agent过程中发现
  • 评估创建shell脚本,配置相应的环境

这是没有必要保护创建shell脚本~/.ssh-agent.tcsh~/.ssh-agent.sh从其他用户访问的原因是:在一与通信ssh-agent通过保护插座,不访问处理另一个用户,并在秒的另一用户可以发现ssh-agent插座通过简单枚举文件在/tmp/目录。 至于有关访问ssh-agent的过程是一样的东西。



Answer 20:

尝试以下方法:

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


Answer 21:

阅读@蛋糕的回答作出解释。 在这里,我只是尝试自动修复。

如果您在使用与BASH Cygwin的终端,以下内容添加到$ HOME / .bashrc文件。 此仅在第一击终端开始的ssh-agent一次,并增加了键SSH-剂。 (不知道这需要在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”命令。



Answer 22:

我有这个问题,当我开始的ssh-agent,当它已经运行。 迷糊。 要看到,如果是这种情况,使用

eval $(ssh-agent)

看看这是一样的你认为是应该的。 就我而言,这是一个比我刚开始不同。

为了进一步验证,如果你有一个以上的SSH代理运行后,您可以查看:

ps -ef | grep ssh


Answer 23:

我有当我试图得到这个工作在Windows连接通过ssh藏匿了类似的问题

这里是为我工作的解决方案。

  1. 原来我在我的Windows机器上运行佳丽SSH代理 - 我会检查你正在运行的。 我怀疑这是选美,因为它来作为默认用腻子和WinSCP赋予

  2. 使用SSH-加不通过命令行与此类型的代理工作

  3. 你需要通过选美UI窗口,您可以在任务栏doublicking佳丽图标(一旦开始)获得加私钥。

  4. 在您添加的关键,佳丽你需要将其转换为PPK格式。 全部指令可以在这里如何SSH密钥转换PPK格式

  5. 这就对了。 有一次,我上传了我的钥匙藏匿我能使用SourceTree创建一个本地回购和复制遥控器。

希望这可以帮助...



Answer 24:

我决心用武力阻止(杀死)git的过程(SSH代理)错误,然后卸载的Git,然后重新安装的Git。



Answer 25:

如果您使用的腻子,也许你需要设置“连接/ SSH /认证/允许代理转发”选项为“真”。



Answer 26:

这个工作对我来说。

在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


Answer 27:

对于内置到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


Answer 28:

我有同样的问题, Ubuntu和其他的解决方案并没有帮助我。 我终于实现了我的问题是什么。 我创造了我的ssh的钥匙/root/.ssh文件夹中,因此,即使当我跑ssh-add为根,它不能做的工作,并不停地说

Could not open a connection to your authentication agent.

我建立了我的ssh公钥和私钥中/home/myUsername/文件夹,我用

ssh-agent /bin/sh

然后我跑了

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

并解决了问题这样。

注:有关访问你的资料库git添加您的git的密码,当您创建ssh连键ssh-keygen -t rsa -C "your git email here"



Answer 29:

在Win8.1E使用Git猛砸,我的决议如下:

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


Answer 30:

另外,请检查您的远程URL。 使用git @ ... GitHub的代替https的:// proptocol

看到https://stackoverflow.com/a/33928364/551811



文章来源: Could not open a connection to your authentication agent
标签: ssh ssh-agent