Linux 如何在两台远程计算机之间使用sshpass复制数据?

Linux 如何在两台远程计算机之间使用sshpass复制数据?,linux,bash,ssh,Linux,Bash,Ssh,我是bash新手,目前正在编写脚本。我正在使用两台远程机器,并通过sshpass访问它们(我知道硬编码密码不好,但我应该这样做)。因此,如果我想将东西从本地机器复制到远程机器,我会这样做: sshpass -p $PASS scp <file> <destination> sshpass-p$PASS scp 但是现在我想把数据从一台远程机器复制到另一台。 这是可能的还是我必须在本地机器上缓冲数据? 如果可能的话,语法应该是什么样子?这两个参数都需要sshpa

我是bash新手,目前正在编写脚本。我正在使用两台远程机器,并通过sshpass访问它们(我知道硬编码密码不好,但我应该这样做)。因此,如果我想将东西从本地机器复制到远程机器,我会这样做:

    sshpass -p $PASS scp <file> <destination>
sshpass-p$PASS scp
但是现在我想把数据从一台远程机器复制到另一台。 这是可能的还是我必须在本地机器上缓冲数据?
如果可能的话,语法应该是什么样子?这两个参数都需要sshpass,对吗?

您能直接在两台远程机器之间使用ssh吗

从本地计算机运行此操作。(机器1和机器2是远程服务器)

将两个远程服务器和本地桌面之间的ssh/scp中的无密钥设置为远程服务器。那你就不必傻了


比如在远程机器上运行sshpass和scp?我试过了,但是没有安装sshpass。我相信如果我被允许安装它,我会感激另一种方式。完成的脚本将自动程序例程,并将在不同的本地机器上运行。他们在这里不使用公钥和私钥,所以这不是一个选项。如果没有其他的答案,我会将你的答案标记为解决方案。我会争辩说,没有使用公钥认证是你系统的一个设计缺陷。
sshpass -p $PASS1 ssh user1@machine1 "sshpass -p $PASS2 scp file user2@machine2:/destination"
ssh user1@machine1 "scp file user2@machine2:/destination"