我正在尝试在 Ruby 中使用 SSH。我知道有一个 SSH 模块,但我不想使用它。我觉得它笨拙且令人困惑。
我能够很好地使用 SSH。然而,我有一个抱怨,我希望有人能提供一些建议。
在 Bash 中,我可以这样做:
echo "PASSWORD" | ssh SERVER "sudo -S cat /etc/sudoers"
当我执行 ps -ef 时,它会显示为:
USER 8212 8837 0 09:31 pts/7 00:00:00 ssh SERVER sudo -S cat /etc/sudoers
执行 ps -ef 时不显示密码。
当我在 ruby 中做同样的事情时,它正在回显密码:
%x[echo "#{password}" | ssh -q -o BatchMode=yes SERVER "sudo -S cat /etc/sudoers 2>/dev/null"].split("\n")
使用 ps -ef 在服务器上显示:
sh -c echo "PASSWORD" | ssh -q -o BatchMode=yes SERVER "sudo -S cat /etc/sudoers 2>/dev/null"