SSHを使用してリモートシステムでシェルスクリプトを実行するには?

SSHを使用してリモートシステムでシェルスクリプトを実行するには?

SSHを介してセミコロンで区切られた複数のコマンドを渡すことなく、bashスクリプトを使用してSSHを介してローカルからリモートサーバーにいくつかのsudo権限コマンドを実行したいと思います。次の手順を試しましたが、エラーが発生します。

ssh -t user@remoteip 'bash -s' < services.sh

ここでは-tオプションを使用しましたが、まだエラーメッセージが表示されます。

sudo: sorry, you must have a tty to run sudo

答え1

Defaults requirettyにコメントがないと、これが発生する可能性があります/etc/sudoers

解決策は、次の行をコメントアウトすることです。

#Defaults    requiretty

編集には**コマンドのみを/etc/sudoers使用することを忘れないでください。visudo

**このvisudoコマンドはユーザーだけが実行できますroot

答え2

次のことを試すこともできます。

ssh -t user@remoteip <<'EOF'
command1
command2
command3
EOF

必要なコマンドでスクリプトをリモートシステムに保存し、ログインしてから呼び出すことをお勧めします。

関連情報