通过 SSH 远程执行 sudo NOPASSWD 命令

通过 SSH 远程执行 sudo NOPASSWD 命令

我有一个远程 Linux 系统,可以通过 ssh 和公钥连接到它,然后执行以下命令:

sudo jetty restart

此系统上的此命令配置为允许任何人无需 sudo 密码即可执行。即 sudoers 文件可能如下所示

%develop ALL = NOPASSWD: /opt/scripts/jetty

这很棒,因为我们可以使用提升的权限执行此脚本,同时保持其他所有内容都被锁定。问题是,当尝试远程执行此命令时,总是要求我输入 sudo 密码。

me@home:~$ ssh -t -i ~/.ssh/identity [email protected] 'sudo jetty restart'
Password: .....? (I don't have the sudo password!)

有什么方法可以远程执行这个命令吗?

答案1

确保sudo选择了正确的命令;如果有/usr/bin/jetty或 之类的,则 sudoers 规则将不匹配。(请注意,~/.bashrc使用 时会忽略您的 和 之类的文件ssh <host> <command>,因此您的$PATH自定义永远不会发生。)

sudo /opt/scripts/jetty restart应该管用。

相关内容