2014-12-04 35 views
0

首先,我开始的ssh-agent与无法打开连接到认证代理,即使SSH_AUTH_SOCK定义

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.

+1

你为什么使用'sudo'?你想以普通用户身份运行它。 – 2014-12-04 18:12:00

回答

1

如果你正在运行SSH命令通过sudo的环境变量将不会被设置。

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命令作为常规(非超级)用户运行。

相关问题