为什么 rsync 与 jump host 和 sshpass 不起作用

为什么 rsync 与 jump host 和 sshpass 不起作用

我正在尝试使用“sshpass”进行 rsync 并使用跳转主机来转换文件。

我使用的命令是 -

rsync -azv -e 'sshpass -p passwordToTargetHost ssh -oProxyCommand="sshpass -p passwordToJumpHost user@JumpHost" user@TargetHost' :/path/to/target /path/to/originFile

但我得到了-

-bash:第 1 行:SSH-2.0-OpenSSH_7.6p1:未找到命令

有什么帮助吗?

答案1

env SSHPASS="JUMP_PASSWORD" \
rsync -v -a \
  -e "sshpass -d 123 ssh \
    -o ProxyCommand=\"sshpass -e ssh -W %h:%p USER@JUMP_HOST\" USER@TARGET_HOST" \
  :/remote/directory/  /local/directory/  \
123<<<TARGET_PASSWORD

这个rsync+sshpass命令会起作用。

sshpass -e获取密码env SSHPASS="JUMP_PASSWORD"

sshpass -d 123获取密码123<<<TARGET_PASSWORD

由于 ssh 连接是在 中定义的rsync -e,因此只需使用 的简写形式:/remote/directory/来引用远程目标主机上的源目录即可。

我在 StackExchange 上发布了一个类似的答案,关于如何使用 sshpass 与 ssh 跳转主机:https://unix.stackexchange.com/questions/597351/sshpass-with-ssh-j-jump-host/668489#668489

相关内容