0

首先我启动 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.

4

1 回答 1

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 命令sudo env

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

于 2014-12-04T21:34:44.653 回答