SSH経由でコマンドを実行し、途中でジャンプ1

SSH経由でコマンドを実行し、途中でジャンプ1

現在、shファイルで次のコマンドを実行しています。このコマンドはファイルが存在することを確認し、応答を読み取ります。

sshpass -p "$PASS" ssh -t $USER@$IP 'echo '$PASS' | sudo -S [ -d /myFile ]' && echo "INFO: already exists /myFile, continue? [Y/n]" && read RESULT

これで同じことをする必要がありますが、途中で別のデバイスが必要です。だから私は持っています:

マイコンピュータ - > Device_1 - > Device_2

Device_1: IP_1USER_1PASS_1;Device_2: IP_2USER_2PASS_2

だからmyComputerからDevice_2に直接同じことができるようにしたいです。ロギングは自動的に行われ、パスワードがあってはなりません。

メモ:

これが役に立つかどうかはわかりませんが、次のコマンドを実行してDevice_2に直接接続できます。

env SSHPASS="$PASS_2" \
  sshpass -d 123 ssh \
    -o ProxyCommand="sshpass -e ssh -W %h:%p $USER_2@$IP_2" \
  $USER_1@$IP_1 \
  123<<<$PASS_1

とにかく、私はデバイスに接続したくないだけでコマンドを実行したいので、これは私には役に立ちません。

答え1

OpenSSHにはまさにこの目的のためのProxyJump(およびProcyCommand)オプションがあるので、それを使用することをお勧めします。コマンド-Jラインオプションは前者と同じです。

関連情報