両方のプロセスを開始するには?それでは、1回目が完了すると2回目も完了しますか?

両方のプロセスを開始するには?それでは、1回目が完了すると2回目も完了しますか?

ジャンプホストの背後にあるサーバーに対してsshコマンドを使用してスクリプトを実行しています。セキュアネットワーク上のサーバーでコマンドを実行したい場合は、常にsshでジャンプホスト(バスチョン)サーバーに接続して実行し、ncnetcatチャネルを介して実行したい実際のコマンドでsshを実行する必要があります。その後、原稿を停止する必要がありますnc

私は同時に2つのプロセスを実行し、ncピギーバックプロセスが完了したらSSHプロセスを閉じることができる「スマートアンパサンド」が欲しいです。

これが私が現在やっていることです。

ssh -g -L 23:localhost:22 -f -N user@jumphost &
ssh user2@localhost -P 23 "ssh user@destination server \"ls -al\""
kill -0 $!

問題は、それが原子的ではないということです。スクリプトにエラーがある場合は完了せず、nc元のプロセスは終了しません。

私の質問は次のとおりです両方のプロセスを開始するには?それでは、1回目が完了すると2回目も完了しますか?

ベストアンサー1

あなたの質問に対する答えではありませんが、この答えはあなたの問題を解決するために、次のことをしたいと思います。

ProxyCommandアプリで使用すると、~/.ssh/config次のすべてのことが行われます。

Host server
  HostName server.tld
  User {server user}
Host proxy
  ProxyCommand ssh server -W %h:%p
  User {proxy user}

その後、次のコマンドを使用してサーバーに簡単にアクセスできます。ssh server

おすすめ記事