[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错误
无法打开与身份验证代理的连接。
我已尝试过stackoverflow和serverfault上的建议,但没有。
注意:我正在使用ubuntu在其中一个免费的AWS机器上运行一台Linux机器。我的实例的安全组允许(临时)来自任何IP地址的所有传入和传出ssh连接。任何人都知道错误是什么?
答案 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中添加的安全功能进行面向未来。