在远程服务器

时间:2017-03-07 00:34:48

标签: bash ssh sh sudo

我尝试以root用户身份在多个远程服务器上运行本地脚本。我没有su来根除那些,但只是可以使用sudo运行root命令。到目前为止我试过了:

for host in $(cat hosts_list); do ssh -tt $host "echo mypassword | sudo bash -s" < ./myscript.sh

在myscript.sh中有类似的东西:

echo "test test123" >> /etc/tests
exit 0

但它似乎无法正常工作并且无法更改文件。以root身份运行此脚本并且不为每个主机单独键入密码的正确方法是什么?

1 个答案:

答案 0 :(得分:-1)

好的,那你为什么要回复mypassword&#34; ?

您是否无法使用NOPASSWD将您的SSH帐户添加到sudoers文件中?

来自man sudoers

 authenticate      If set, users must authenticate themselves via a password (or other means
                   of authentication) before they may run commands.  This default may be
                   overridden via the PASSWD and NOPASSWD tags.  This flag is on by default.