【问题标题】:Could not open connection to authentication agent even though SSH_AUTH_SOCK defined即使定义了 SSH_AUTH_SOCK,也无法打开与身份验证代理的连接
【发布时间】:2015-02-02 17:49:51
【问题描述】:

首先我用

启动 ssh-agent
eval `ssh-agent -s`

我确认SSH_AUTH_SOCK 是通过运行echo $SSH_AUTH_SOCK 设置的,这令人鼓舞地返回/tmp/ssh-oCsFfHvR3345/agent.3345

然而,当我运行sudo ssh-add ~/.ssh/id_rsa 时,我得到了

Could not open a connection to your authentication agent.

此外,ssd-add -l 返回The agent has no identities.

【问题讨论】:

  • 你为什么要使用sudo?您想以普通用户身份运行它。

标签: bash ssh ubuntu-12.04 ssh-keys ssh-agent


【解决方案1】:

如果您通过sudo 运行 SSH 命令,则不会设置环境变量。

来自man sudoers

默认情况下,env_reset 选项处于启用状态。这会导致在新的最小环境中执行命令。在 AIX(和没有 PAM 的 Linux 系统)上,使用 /etc/environment 文件的内容初始化环境。除了 env_check 和 env_keep 选项允许的调用过程中的变量之外,新环境还包含 TERM、PATH、HOME、MAIL、SHELL、LOGNAME、USER、USERNAME 和 SUDO_* 变量。这实际上是环境变量的白名单。

您可以通过运行sudo env 来检查哪些环境变量可用于您的 sudo 命令。

以上内容将解释您描述的行为,但您确实应该以普通(非超级)用户的身份运行ssh 命令。

【讨论】:

    猜你喜欢
    • 2011-05-04
    • 2016-01-16
    • 2015-07-09
    • 1970-01-01
    • 2016-01-18
    • 2015-04-25
    相关资源
    最近更新 更多