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。