Sshのセミコロンから分離した複数のコマンドを渡さずに、sshを介してローカルサーバーからリモートサーバーにbashスクリプトを使用して、いくつかのSudo特権コマンドを実行したいと思います。以下の手順を試しましたが、エラーが発生しました。
ssh -t user@remoteip 'bash -s' < services.sh
ここでは-tオプションを使用しましたが、それでもエラーメッセージが表示されます。
Sudo: sorry, you must have a tty to run Sudo
これは、Defaults requiretty
が/etc/sudoers
でコメント解除されている場合に発生する可能性があります。
修正はその行をコメント化することです:
#Defaults requiretty
visudo
**コマンドを使用して/etc/sudoers
のみを編集することを忘れないでください。
** visudo
コマンドは、root
ユーザーのみが実行できます。
あなたもこれを試すことができます:
ssh -t user@remoteip <<'EOF'
command1
command2
command3
EOF
おそらく、リモートマシンで必要なコマンドを使用してスクリプトを保存し、ログインしたらそれを呼び出すことをお勧めします。