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