通过 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

设备_1: IP_1, USER_1, PASS_1;设备_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行选项与前者等效。

相关内容