作为Ubuntu用户,我想执行一个需要 root 权限的命令,因此我使用sudo
如下命令:
sudo puppet apply /etc/puppet/manifests/site.pp
尽管我的公钥已在远程主机上获得授权,此命令仍会调用 SSH 并提示我输入密码。唯一能让它正常工作的方法是将我的私钥 SSH 密钥添加到 root 用户。
我不想将我的私钥添加到 root 用户。我该如何使用私钥sudo
,但仍然使用私钥Ubuntu用户?
答案1
我发现这在 Server Fault 上回答。本质上,您需要将此行添加到/etc/sudoers
(使用visudo
):
Defaults env_keep+=SSH_AUTH_SOCK
然后你就能够正常运行你的命令了:
sudo puppet apply /etc/puppet/manifests/site.pp
答案2
事实证明,这个问题有一个非常简单的解决方案。
添加 -u 选项允许我指定用户。
sudo -u $USER puppet apply /etc/puppet/manifests/site.pp
现在将使用该用户的 ssh 密钥。