我有4台计算机A、B、C、D。计算机A和B在一个城市,计算机C和D在另一个城市。计算机A和D是两台集群机。计算机B和计算机C通过VPN连接。我在计算机 A 中有一个巨大的数据 ~TB,想发送到计算机 D。最好的发送方式是什么?我把以下信息放在计算机B中,这样我就可以通过C隧道将数据从计算机B直接发送到D。但是如何从计算机A发送到D呢?
Host C
Hostname C.*** User <USERNAME>
IdentityFile ̃/.ssh/id_rsa
Host D
Hostname D.*** User <USERNAME>
ProxyCommand ssh C nc %h %p
答案1
使用,与ie通过跳转主机连接ProxyJump
是一样的。ssh -J
scp -oProxyJump=userB@B,userC@C file userD@D:/path/to/target
如果不需要,请跳过定义用户:
scp -oProxyJump=B,C file D:/path/to/target
人 5 ssh_config
代理跳转
将一个或多个跳转代理指定为 [user@]host[:port] 或 ssh URI。多个代理可以用逗号分隔,并且将按顺序访问。设置此选项将导致 ssh(1) 连接到目标主机,方法是首先与指定的 ProxyJump 主机建立 ssh(1) 连接,然后建立从那里到最终目标的 TCP 转发。
考虑到文件的大小,您可能对连接中断时的故障保护感兴趣。rsync
可以恢复中断的传输并利用 的ssh
跳转主机选项:
rsync -P -e"ssh -oProxyJump=userB@B,userC@C" file userD@D:/path/to/target/