我正在尝试使用“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