12.04LTS-无法打开与您的身份验证代理的连接

12.04LTS-无法打开与您的身份验证代理的连接

我正在为新的 Linode Ubuntu 12.04LTS 部署添加 ssh 身份验证。我遵循他们的指南直到我需要使用我刚添加的 ssh 密钥通过 ssh 进入该框,但我得到的却是:

"Error: agent admitted failure to sign using the key"

这很好,Ubuntu OpenSSH 指南说你需要做的就是运行

ssh-add

在服务器上,你就会成功。但当我这样做时,我得到了

Could not open a connection to your authentication agent.

我仔细检查了这些进程,发现 ssh-agent 确实已经在运行(实际上已经运行了两次,因为我尝试过评估技巧,根本不起作用):

alex@mybox:~$ ps aux | grep ssh
root      2645  0.0  0.1  49948   776 ?        Ss   Mar13   0:00 /usr/sbin/sshd -D
alex     16989  0.0  0.0  12492   324 ?        Ss   Mar13   0:00 ssh-agent
root     18986  0.0  0.7  73360  3564 ?        Ss   09:03   0:00 sshd: alex [priv]   
alex     19119  0.0  0.3  73360  1676 ?        S    09:03   0:00 sshd: alex@pts/0    
alex     19785  0.0  0.0  12492   316 ?        Ss   09:59   0:00 ssh-agent
root     20026  0.0  0.7  73360  3568 ?        Ss   10:02   0:00 sshd: alex [priv]   
alex     20184  0.0  0.3  73360  1680 ?        S    10:03   0:00 sshd: alex@pts/1    
alex     20325  0.0  0.1   9384   924 pts/1    S+   10:13   0:00 grep --color=auto ssh

正如我所提到的,eval 方法曾成功使 ssh-add 工作过一次,但当我尝试再次登录时,系统报告了上述相同的错误。我现在也有两个 ssh-agent 实例。

解决这个问题的正确方法是什么?

答案1

尝试为当前 bash 会话启动 ssh-agent。以下是您需要执行的操作。

  1. 测试当前 ssh-agent PID 的环境:

    env | grep ^SSH
    
  2. 如果您没有注意到任何内容,请启动当前环境的 ssh-agent:

    exec ssh-agent bash
    
  3. 现在尝试添加密钥:

    ssh-add
    

答案2

确保SSH_AGENT_PID环境变量设置为 SSH 代理的 PID,并将其SSH_AUTH_SOCK设置为代理套接字的路径(通常在目录中/tmp,例如/tmp/ssh-wpNhPp3007/agent.3007:)

ssh-add可以使用这些变量来添加您的密钥。

答案3

您还可以使用以下语法:

ssh-agent sh -c 'ssh-add && echo Do some stuff here.'

答案4

您的问题在于客户,而不是在服务器上。运行 sshd 的系统不关心 ssh-add/ssh-agent。它只检查客户端系统是否能够进行授权数字签名。此签名是由 ssh、ssh-agent 还是智能卡生成的都没有区别。

如果您不使用其中一个标准文件(例如 ~/.ssh/id_rsa_newbox),那么您必须告诉 ssh(-i ~/.ssh/id_rsa_newbox) or ssh-agent (ssh-add ~/.ssh/id_rsa_newbox`)使用这个非标准文件。

相关内容