将 sudo 与普通用户的私有 SSH 密钥结合使用

将 sudo 与普通用户的私有 SSH 密钥结合使用

作为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 密钥。

相关内容