具有 2 个不同 .pem 密钥的 2 个服务器之间的 scp 命令
Scp command between 2 servers with 2 different .pem keys
我想使用 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
将只接受一个 -i
选项,因此您的 none 个命令将起作用。
接下来,您没有使用 -3
选项。这意味着传输将直接发生在 server1 和 server2 之间,而不通过您的机器。在这种情况下,服务器 2 的证书需要存储在服务器 1 上。
已经为 -3
选项给出了一个解决方案 here. And if server1 can not connect directly to server2, see also here。
另一个解决方案是使用两个 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 所有,而不是其原始所有者
创建一个类似 ~/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 和 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
将只接受一个 -i
选项,因此您的 none 个命令将起作用。
接下来,您没有使用 -3
选项。这意味着传输将直接发生在 server1 和 server2 之间,而不通过您的机器。在这种情况下,服务器 2 的证书需要存储在服务器 1 上。
已经为 -3
选项给出了一个解决方案 here. And if server1 can not connect directly to server2, see also here。
另一个解决方案是使用两个 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 所有,而不是其原始所有者
创建一个类似 ~/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