通过ssh标准输入的sudo密码有任何安全风险吗?

时间:2015-03-25 08:10:10

标签: shell security ssh sudo

我想在远程服务器上通过ssh执行sudo并通过标准输入提供密码。以下代码位于具有受限访问权限的安全服务器上的shell脚本中。事先询问密码,服务器使用所有相同的sudo密码。某些行为肯定需要几秒钟才能执行。

这是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是否安全。

1 个答案:

答案 0 :(得分:2)

是!

只要命令正在运行,任何可以查看所有进程的人都可以通过运行ps aux | grep echo来查看该密码:

root     [..] zsh -c echo topsecret | sudo -C action

您可以将sudo配置为不向用户询问特定任务的密码,这肯定会提高此解决方案的安全性。