【发布时间】:2015-03-25 08:10:09
【问题描述】:
我想在远程服务器上通过 ssh 执行 sudo 并通过标准输入提供密码。以下代码位于访问受限的安全服务器上的 shell 脚本中。事先询问密码,服务器使用所有相同的 sudo 密码。 someaction 肯定需要几秒钟才能执行。
这里是shell脚本摘录:
read -s -p "please enter your sudo password" PASSWORD
ssh user@host1 -t "echo '$PASSWORD' | sudo -S someaction"
ssh user@host2 -t "echo '$PASSWORD' | sudo -S someaction"
我的问题:在管道中使用 echo 是否安全?这里是否有任何可能发生的安全问题,例如在远程服务器上记录回显结果等?
也许有人有更好的建议?
注意:我知道其他工具可以做到这一点,比如 ansible 等。我不是在寻找另一个类似的工具,只是想知道以上述方式使用 ssh/echo/sudo 是否安全。
【问题讨论】:
-
可能不在服务器上,但肯定在您执行这些命令的节点上。
$PASSWORD是可见的,因为它是一个环境变量。 -
好点,但是代码在脚本中,并且假设脚本没有被其他人操纵或调整。我会调整问题。谢谢。