2个服务器之间的SCP命令,带2个不同的.pem键



我想通过SCP和2个不同的.pem键将文件夹从服务器A转移到服务器B。

这是最好的方法,这实际上会起作用。

scp -i ~/Documents/server1.pem -r root@server1.com:~/location/to/dir -i ~/Documents/server2.pem ~/location/to/copy/to

或我必须输入:

scp -i ~/Documents/server1.pem -r root@server1.com:~/location/to/dir -i ~/Documents/server2.pem root@server2.com:~/location/to/copy/to

如果我需要输入主机或位置,我只是不确定第二个位置。非常感谢您的帮助。

创建一个配置文件,例如 ~/scp_config

Host src
    HostName server1.com
    User root
    CertificateFile %d/Documents/server1.pem
Host dest
    HostName server2.com
    User root
    CertificateFile %d/Documents/server2.pem

然后运行

scp -3 -F ~/scp_config src:~/location/to/dir dest:~/location/to/copy/to

首先, scp只能接受一个 -i选项,因此您的命令都无法正常工作。

接下来,您没有使用-3选项。这意味着传输将直接发生在server1和server2之间,而无需通过机器。在这种情况下,这将是在Server1上,需要存储Server2的证书。

这里已经提供了一种解决方案。如果Server1无法直接连接到Server2,请参见此处的-3选项。

另一个解决方案是使用两个ssh进程,每个进程都有自己的-i选项。类似:

ssh -i ~/Documents/server1.pem root@server1.com 'tar cz -C ~/location/to/dir .' 
| ssh -i ~/Documents/server2.pem root@server2.com 'tar xz -C ~/location/to/copy/to'

注意:

  • 这样,文件通过您自己的计算机,例如scp-3选项
  • 您可能要先创建目标目录(在tar x之前添加mkdir -p命令)
  • 您可能需要在tar x命令中使用--no-same-owner将文件归于root,而不是由其原始所有者

最新更新