如何通过远程 ssh 调用 sudo 命令(例如 systemctl)

如何通过远程 ssh 调用 sudo 命令(例如 systemctl)

我正在尝试设置一个部署管道,其中涉及调用 systemctl 来启动和停止服务。我在服务器上有一个调用 systemctl 的 shell 脚本,我的构建服务器将通过远程 ssh 调用该 shell 脚本。

但是 systemctl 需要 sudo 权限,因此会提示输入密码。有没有一种不需要用户交互就能通过远程 ssh 调用 systemctl 的方法?

答案1

请花时间做一些事情,而不是重新发明轮子。如今有许多配置管理选项。

最接近你试图构建的是Ansible

答案2

无论如何,无需安装额外的软件应该是可能的,只要您可以完全控制您部署的服务器,或者有人愿意帮助您。

您走在正确的道路上。唯一缺少的一点是修改/请求修改用户使用 sudo 命令的方式。其配置选项用于确定某些用户无需密码即可使用某些 sudo 命令。

无论如何,文档清楚地说明了如何操作,但如果你不拥有/管理你部署的服务器,那么管理员为你提供了一个“无密码” sudo 访问权限来访问像 systemctl 这样强大而复杂的功能,这将是奇怪(且有风险)的

相关内容