2015-11-05 109 views
0

我试图添加一个新的ssh密钥。我使用“的ssh-agent -s”启动服务,我得到这样的响应:ssh代理启动但无法连接到认证代理

SSH_AUTH_SOCK=/tmp/ssh-tUlzwbxYNLaZ/agent.9516; export SSH_AUTH_SOCK; 
SSH_AGENT_PID=8992; export SSH_AGENT_PID; 
echo Agent pid 8992; 

但是当我做“SSH-添加的〜/ .ssh/id_rsa”我的错误“无法打开与您的身份验证代理的连接。“启动命令不起作用?我不确定启动命令的输出是什么意思。

回答

1

您在上面显示的输出需要为,评估为。很多时候这是通过自动完成的,如eval `ssh-agent`。这将导致

  • SSH_AUTH_SOCK=/tmp/ssh-tUlzwbxYNLaZ/agent.9516; export SSH_AUTH_SOCK;:在SSH_AUTH_SOCK环境变量设置为给定值。
  • SSH_AGENT_PID=8992; export SSH_AGENT_PID;:将SSH_AGENT_PID环境变量设置为给定值。

这两个变量需要设置为ssh-add才能找到代理。如果您想手动评估它们,您可以复制这些命令,将它们粘贴到您的终端或控制台中,然后按Enter键。然后再次尝试使用ssh-add

最后一行echo Agent pid 8992;只是打印出您的信息的ssh-agent进程ID。

这些变量不能被硬编码,因为套接字和PID是不可预测的。每次你开始ssh-agent你需要使用它打印出来的任何值。

请注意,这些变量仅针对当前shell设置。所以,如果你在终端窗口中进行操作,然后在该窗口中工作,你应该没问题,但是如果关闭窗口并打开一个新终端,它将不再工作。同样,如果您登录到控制台,然后注销并重新登录。

大多数现代桌面环境启动ssh-agent并为您设置适当的环境变量,所以如果您使用Gnome或KDE或Unity或您不应该这样做。如果你手动启动你的环境,或者使用一些不适合你的裸机,你应该在你的X启动文件中增加eval `ssh-agent`,例如.xinitrc,以便它在启动X之前运行。

+0

那么我到底该做什么呢?我不擅长这些事情。 –

+0

@ user3784238,在不了解你的系统的情况下,你应该能够运行前两个'ssh-agent -s'吐出的命令(我的答案中的两个命令)。将它们复制到您的终端或控制台中,然后按Enter键。然后再次尝试从同一个终端或控制台使用'ssh-agent'。 – Chris

+0

太棒了!谢谢 –