【问题标题】:ssh agent started but can't connect to authentication agentssh 代理已启动但无法连接到身份验证代理
【发布时间】:2016-02-06 13:36:52
【问题描述】:

我正在尝试添加一个新的 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 命令的输出是什么意思。

【问题讨论】:

    标签: github ssh key agent


    【解决方案1】:

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

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

    【讨论】:

    • 那我该怎么办呢?我不太擅长这些事情。
    • @user3784238,在不了解您的系统的情况下,您应该能够运行ssh-agent -s 吐出的前两个命令(我的回答中的项目符号中的两个)。将它们复制到您的终端或控制台中,然后按 Enter。然后尝试从同一终端或控制台再次使用ssh-agent
    猜你喜欢
    • 1970-01-01
    • 2015-07-09
    • 2017-07-31
    • 2016-11-02
    • 2019-05-07
    • 2011-05-04
    相关资源
    最近更新 更多