Ansible、Vagrant、sudo 和 ssh-agent

Ansible、Vagrant、sudo 和 ssh-agent

所以我看到了这个问题并将添加Defaults env_keep+=SSH_AUTH_SOCK到我的/etc/sudoers文件中,但我仍然无法使用sudo: truesudo_user: <user>在我的 ansible playbook 中从 Vagrant 框上的 github 克隆。我想以我创建的用户身份克隆代码来运行它,但事实证明这真的很令人沮丧。当我通过登录时我可以这样做,但当我这样做时,我收到权限被拒绝错误。当我以特定用户的身份回显该值时,我看到它已设置:ssh [email protected]vagrant sshsudo -u <user> ssh [email protected]SSH_AUTH_SOCK

vagrant@vagrant-ubuntu-trusty-64:/tmp$ sudo -u derp echo $SSH_AUTH_SOCK
/tmp/ssh-w3XYbqlMnX/agent.1592

答案1

我认为问题是 /tmp 文件没有权限。如果你

 sudo -u root ssh [email protected]

这可能有效,因为 root 可以读取文件

要以 vagrant 用户身份修复此问题,请运行

setfacl -m otheruser:x   $(dirname "$SSH_AUTH_SOCK")
setfacl -m otheruser:rwx "$SSH_AUTH_SOCK"

这应该赋予otheruser进入目录并读取文件的权限。

相关内容