2017-03-07 5 views
0

複数のリモートサーバー上でローカルスクリプトをルートとして実行しようとしています。私はそれらに根を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としてこのスクリプトを実行し、各ホストに個別にパスワードを入力することなく適切な方法は何ですか?

+0

私は、これは私は、これは純粋にシェルスクリプトの問題であると考えていServerFaultの –

+0

に良くフィットすると思います。 – JavaRed

+0

'sudo echo" PermitRootLogin yes ">>/etc/ssh/sshd_config'と' sudo service ssh restart'を試してください – Arash

答えて

-1

「なぜ、mypasswordをエコーし​​ますか?

NOPASSWDでsudoersファイルにSSHアカウントを追加できませんか? 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. 
+0

私はここに示すようにリモートサーバ上でローカルスクリプトを実行できることを知っています: http://serverfault.com/questions/617116/run-local-script-over-ssh しかし、上記の例ではルートアクセスサーバーへの接続は許可されます。私の環境ではそうではありません。だから私はsudoで自分のローカルスクリプトを実行する必要があり、ちょうど各ホストのためのパスワードを入力せずに可能であるかどうかを知りたかった – JavaRed

+0

私は最初にポイントを取得していない。私はあなたの問題を解決できることを願っています。 – SegFault

+0

私は既に自分のユーザーを使ってパスワードなしでリモートサーバーに接続できます。しかし、ルートアクセスもsuも許されません。 私はsudoを使って自分のローカルスクリプトを実行し、毎回sudoのパスワードを入力しない方法を見つけ出す必要があります。なぜなら、私は300以上のサーバーでそれを行う必要があるからです。 – JavaRed

関連する問題