Answers:
有两个选项,您可以在Defaults requiretty/ etc / sudoers中注释掉设置,或者使用的伪tty分配(-t)参数ssh。
在您的jenkins脚本中尝试以下操作:
ssh -t 127.0.0.1 "sudo command"
虽然您必须为ssh自己配置预共享密钥,然后手动运行一次才能将条目添加到已知主机,但是也可以添加-o StrictHostKeyChecking=no参数ssh以忽略它。
它失败,因为sudo正在尝试提示输入root密码,并且没有分配伪tty。
您必须以root用户身份登录或在/etc/sudoers
(或:)中设置以下规则sudo visudo:
# Members of the admin group may gain root privileges.
%admin ALL=(ALL) NOPASSWD:ALL
然后,确保您的Jenkins用户属于admin组(或wheel)。
理想情况下(更安全)是将root特权仅限制于可以指定为 %admin ALL=(ALL) NOPASSWD:/path/to/program
sudo允许运行而无需输入密码?如果必须输入密码,则sudo要求输入tty。