如何通过 SSH 启用 sudo 命令而不询问密码?

如何通过 SSH 启用 sudo 命令而不询问密码?

我有服务器 A 和服务器 B(均为 Ubuntu 10.04 LTS),它们执行不同的任务。服务器 A 需要向服务器 B 发送消息,服务器 B 会生成一个文件,完成后再通过 scp 将其发送回服务器 A。这一切都在内部完成,我并不太担心安全问题。服务器 A 和 B 之间已经执行了 SSH 密钥交换,并且运行正常。

在服务器 B 上,脚本generateOfflineSig如下所示

#!/bin/bash
echo "in script"
sudo apt-offline set offline_package.sig --install-packages "$0"
echo "after sudo"
scp offline_package.sig jeff@servera:/tmp

此外,在服务器 B 上,visudo 有以下条目:

jeff ALL=NOPASSWD: ALL

如果我sudo ls在服务器 B 上执行,则不会询问密码。

不幸的是,SSH 总是要求在服务器 A 上输入密码:

jeff@servera:~$ ssh -t jeff@serverb /home/jeff/generateOfflineSig "incron"
in script
[sudo] password for jeff:

有什么想法吗?此过程不能通过输入密码来中断。

答案1

看来我的/etc/sudoers文件中有一个“拼写错误”......

jeff ALL=NOPASSWD: ALL

需要在最后的文件。Ubuntu 帮助只说将 (...) 添加到文件末尾(如果不在末尾,则可以被后面的条目取消)

此后,无论是本地还是通过 SSH,都不再要求输入“jeff 的 sudo 命令”的密码。

相关内容