2 个虚拟机之间的 SCP 文件

2 个虚拟机之间的 SCP 文件

我有 2 台虚拟机。第一台虚拟机是存储源文件的地方。第二台虚拟机是我的 bash 脚本所在的地方,它应该将文件从源复制到我的第二台虚拟机。

我如何在 Bash 中执行此操作?

当我的脚本在第 3 台机器上运行时,是否可以使用 Bash 将文件从 1 台虚拟机 SCP 到 2 台虚拟机?如果可以,请告诉我如何操作。

答案1

这是可能的(只要两个主机都在监听 SSH,并且第一个远程主机可以看到第二个)!为什么不尝试一下呢?

scp remote1:/path/to/file remote2:/path/to

您可能需要为这两个主机都提供用户名和/或密码(如果您的用户名在不同机器上有所不同)。

如果您使用基于代理的身份验证并启用了代理转发,则无需提供任何密码(这是我喜欢的工作方法)。

请注意,这与 Bash(甚至虚拟机)无关,并且可以在任何 shell 中运行。

答案2

通常的做法是通过 ssh 进入其中一台远程机器,然后从那里发出 scp。

#3rd-vm> ssh 2nd-vm
#2nd-vm> scp file 1st-vm:~/

答案3

如果您需要通过第三台机器进行桥接,您可以使用 ssh 进行如下操作:

ssh remote1 cat file | ssh remote2 'cat > file'

或者使用 tar:

ssh remote1 tar cf - path/to/copy | ssh remote2 tar xf - -C path/to/dest

相关内容