我想在远程服务器上通过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是否安全。
答案 0 :(得分:2)
是!
只要命令正在运行,任何可以查看所有进程的人都可以通过运行ps aux | grep echo
来查看该密码:
root [..] zsh -c echo topsecret | sudo -C action
您可以将sudo
配置为不向用户询问特定任务的密码,这肯定会提高此解决方案的安全性。