プレーンテキストパスワードを使用して同じサブネット上の他のクライアントサーバーにSSHで接続し、rootとしてsudoしてコマンドを閉じて再起動します。意図的にSSHキーを追加していません。頑張った
ssh -tt [username]@[host] "sudo su -; service snmpd stop; reboot ";
ログイン時にsudoのユーザー名とパスワードをどのように渡しますか?
答え1
メモ:ここに提供されている答えはうまくいくはずです。しかし、ベストプラクティスに違反しました。また、この回答では、sshpass
コマンドが実行されるホストでコマンドを使用できることを前提としています。ユーザーは一度使用された後に削除されることを認識します。
sshpass -pPASSWORD ssh -tt [username]@[host] 'echo PASSWORD | sudo -S -s /bin/bash -c "service snmpd stop; reboot"'
少なくとも、ユーザーはSSHログインに鍵交換を使用し、ユーザーがパスワードなしでsudoを介して必要なコマンドを実行できるようにする必要があります。
答え2
sshpassというプログラムを使ってSSHパスワードを渡してみてください。次のように使用できます。
SSHPASS='sshpassword'
remoterootpass='remoterootpass'
sshpass -e ssh user@host <'EOF'
su -
echo "$remoterootpass"
service snmpd stop
reboot
EOF
リモートコマンドをシェルスクリプトに入れて、次のように呼び出すこともできます。
SSHPASS='sshpassword'
cat myscript.sh | sshpass -e ssh user@host