向ssh-agent添加ssh密钥失败w / running agent,环境变量设置为

时间:2015-05-21 22:50:20

标签: linux bash ubuntu amazon-web-services ssh

[SSH]“无法打开与身份验证代理的连接”。错误

我正在尝试将ssh密钥添加到我的ssh代理中。我首先确保ssh-agent正在运行。

exec ssh-agent bash

我确保ssh-agent正在运行。

ps axu | grep [s]sh

并获得以下

  

root 1562 ... ssh-agent bash

正确设置了env变量。

  

SSH_AGENT_PID = 1562

     

SSH_AUTH_SOCK = / TMP / SSH-699iHAxuK4xX / agent.1561

但是当我尝试使用

添加私钥时
sudo ssh-add ~/.ssh/peter-key

我收到ssh错误

  

无法打开与身份验证代理的连接。

我已尝试过stackoverflowserverfault上的建议,但没有。

注意:我正在使用ubuntu在其中一个免费的AWS机器上运行一台Linux机器。我的实例的安全组允许(临时)来自任何IP地址的所有传入和传出ssh连接。任何人都知道错误是什么?

1 个答案:

答案 0 :(得分:1)

只需使用

ssh-add ~/.ssh/peter-key

...不...

sudo ssh-add ~/.ssh/peter-key

使用sudo(可选地/可配置,但通常)清除许多环境变量,包括您刚刚验证的环境变量。 (比较sudo env和普通env的输出以查看此效果。)

如果必须使用sudo来读取密钥,那么您可以通过自己明确地确保在另一方设置必要的环境变量:

sudo env "SSH_AUTH_SOCK=$SSH_AUTH_SOCK" ssh-add ~/.ssh/peter-key

但是,使用UNIX域套接字的安全敏感程序可以检查该套接字另一端的软件的所有权和权限,并拒绝与在不同用户帐户上运行的任何内容进行通信。从他们的期望中可以看出,这种方法可能无法针对ssh-agent中添加的安全功能进行面向未来。