场景如下:
ssh +------------+
+---->| Server 2 |
+------------+ | +------------+
| Server 1 +---+
+------------+ | +------------+
+---->| Server 3 |
ssh +------------+
我可以通过 SSH 访问Server 1
和(但不能通过到或反之访问)Server 2
。Server 3
Server 2
Server 3
我想要传输一个相当大的文件,2
并且想知道通过充当协调器来3
实现这一目标的最快方法是什么。1
更新:我确实在两个服务器之间建立了连接,但没有往返于服务器的 SSH 凭证。
答案1
您可以直接在两台服务器之间进行传输:
在您想要传输到的服务器上,在某个随机端口上以监听模式启动 nc:
ssh dst-server 'exec 1>/tmp/bah; nc -l -p 34001'
在您想要下载的服务器上,以客户端模式使用 nc 进行传输。您可以使用压缩,只需创建一个 gzip 管道:
ssh source-server 'nc dst-server 34001 < ./bah'
您会在 /tmp/bah 中找到您的文件
答案2
您可以使用'scp':
在服务器 1 上执行以下操作:
scp user1@server2:/path/filename user3@server3:/path
更多信息请见man scp
。