dhcpd restart 命令从命令行询问密码,而不是从脚本询问密码?

dhcpd restart 命令从命令行询问密码,而不是从脚本询问密码?

我有一个脚本运行并将ssh进入另一台服务器以重新启动其dhcpd.

在脚本中,命令的字面意思是:

sudo ssh -n $SERVER /sbin/service dhcpd restart

当调用脚本时,这工作得很好,但是当我尝试自己在命令行手动运行该命令时,它会提示并等待我输入 root 密码。

它如何不提示输入 root 密码,仅仅因为该命令是从脚本中调用的?

我还检查过以确保我以同一用户身份运行两者。我没有创建脚本,所以我不确定当调用脚本时是否有一些魔法允许这种类型的事情发生。

答案1

您必须根据您的情况设置 SSH。无论从什么地方调用,SSH 工具本身只是读取配置和密钥,并且如果远程服务器接受仅密钥身份验证,则不会出现密码提示。只需在您希望执行命令的用户下的远程主机上创建一个密钥,在本地主机上启用基于密钥的身份验证,并对您将在其下调用此字符串的用户创建“su”(无论使用哪种方法:cron, shell 等) - 并在本地插入远程密钥作为该主机的密钥。就是这样!

相关内容