ssh 次に、別のサーバーでsshを実行し、コマンドを実行して終了します。

ssh 次に、別のサーバーでsshを実行し、コマンドを実行して終了します。

あるサーバーにSSHを接続し、別のサーバーにSSHを接続してから、2番目のサーバーでコマンドを実行し、両方のサーバーをシャットダウンするbashを作成しようとしています。

これまで私は得た

ssh [email protected] "ssh [email protected]; cd Dirk; source venv/bin/activate; python app.py; exit; exit;"

しかし、最初のサーバーからSSHに接続する2番目のサーバーではコマンドを実行できないようです。どうすればいいですか?

ベストアンサー1

ssh user@host(ネストされた呼び出しのように)コマンドを引数として指定せずに実行すると、sshはシェルを起動し、コマンドが入力されるのを待ちます。

コマンドをパイプするとssh host1 ssh host 2機能します。あなたの質問と同じ例を使用してください。

echo "cd Dirk; source venv/bin/activate; python app.py" \
| ssh [email protected] ssh [email protected]

おすすめ記事