我有以下脚本,它可以正常工作:
echo -n "Enter sudo password: "
read -s sudo_pass
echo "$sudo_pass" | ssh -tt myhost "sudo -S ./remote_script.sh"
问题在于输出。我希望从
stdin
中获取的密码被sudo
使用,但不要打印到屏幕上。但实际上,我得到了以下输出:<system banner>
thepassw0rd
[sudo] password for theuser:
有没有方法可以实现这个?我甚至不确定是哪个命令导致输入被打印出来。
更新
我通过执行以下命令找到了输入是由 ssh 打印的:
echo 123 | ssh -tt myhost "sleep 2"
这使我
<system banner>
123
Connection to myhost closed.
sudo
,以允许一个适当的用户在不需要密码的情况下运行该命令。 - chepner-tt
是因为remote_script.sh
需要一个伪终端,还是因为你认为sudo
需要? - chepner-T
,然后它起作用了。谢谢! - Andy