現在、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_1
、USER_1
、PASS_1
;Device_2: IP_2
、USER_2
、PASS_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
ラインオプションは前者と同じです。