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

ssh agent started but can't connect to authentication 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" 我收到错误 "Could not open a connection to your authentication agent." 启动命令不起作用吗?我不确定启动命令的输出是什么意思。

您上面显示的输出需要评估。通常这是通过像 eval `ssh-agent` 一样启动 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 设置。因此,如果您在终端 window 中执行此操作,然后在该 window 中工作,您应该没问题,但如果您关闭 window 并打开一个新终端,它将不再工作。同样,如果您登录到控制台,请注销并重新登录。

大多数现代桌面环境都会启动 ssh-agent 并为您设置适当的环境变量,因此如果您使用的是 Gnome、KDE ​​或 Unity 或其他软件,则不必执行此操作。如果您手动启动您的环境或使用一些不能为您处理此问题的更简单的系统,您可能应该将 eval `ssh-agent` 添加到您的 X 启动文件中,例如.xinitrc 以便它在启动 X 之前运行。