web-dev-qa-db-ja.com

SSHを使用してリモートマシンでシェルスクリプトを実行する方法

Sshのセミコロンから分離した複数のコマンドを渡さずに、sshを介してローカルサーバーからリモートサーバーにbashスクリプトを使用して、いくつかのSudo特権コマンドを実行したいと思います。以下の手順を試しましたが、エラーが発生しました。

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

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

Sudo: sorry, you must have a tty to run Sudo
3
BDN

これは、Defaults requiretty/etc/sudoersでコメント解除されている場合に発生する可能性があります。

修正はその行をコメント化することです:

#Defaults    requiretty

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

** visudoコマンドは、rootユーザーのみが実行できます。

3
Timothy Martin

あなたもこれを試すことができます:

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

おそらく、リモートマシンで必要なコマンドを使用してスクリプトを保存し、ログインしたらそれを呼び出すことをお勧めします。

2
jesse_b