如何通过 SSH 将 Sudo 与 Jenkins bash 脚本一起使用?

How to use Sudo with a Jenkins bash script over SSH?

我有一台物理机(Win7)和一台虚拟机(Red Hat)共享一个网络。我正在执行一个 bash 脚本作为 Jenkins 作业,使用 Jenkins 的 SSH 插件将应用程序从物理机部署到虚拟机。

由于我希望在其上执行脚本的机器上的安全策略,我无法使用 Root 用户,而是仅限于使用具有 sudo 访问权限的标准用户。

但是,我希望脚本 运行 不间断(我不认为 Jenkins 在 运行ning bash 脚本时甚至允许你输入用户密码?另外,这个无论如何似乎都不是最佳做法)。

是否有任何方法可以绕过 sudo 请求或脚本配置,从而允许此过程 运行 按照我希望的方式进行?

您可以在 /etc/sudoers 中使用 NOPASSWD 指令;见 sudoers manual page.

如果这不可能,您可以随时使用 expect 将密码(存储在帐户中的某处)提供给 sudo 进程。这也可能违反您的安全策略。您需要与制定政策的人讨论如何使这些工作自动化(“数字化转型”等等)。