ssh代理已启动但无法连接到身份验证代理

时间:2015-11-05 16:01:49

标签: github ssh key agent

我正在尝试添加新的ssh密钥。我已经使用“ssh-agent -s”启动了服务,我得到了这个回复:

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-add~ / .ssh / id_rsa”时,我收到错误“无法打开与身份验证代理的连接”。启动命令不起作用吗?我不确定start命令的输出是什么意思。

1 个答案:

答案 0 :(得分:1)

您在上面显示的输出需要评估。通常,这是通过启动ssh-agent 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,则不应该这样做。如果您手动启动环境或使用不能处理此问题的更多问题,您应该将eval `ssh-agent`添加到X启动文件中,例如: .xinitrc以便在启动X之前运行。