我正在尝试添加新的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命令的输出是什么意思。
答案 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之前运行。