从第三台计算机将文件从一台服务器传输到另一台服务器

从第三台计算机将文件从一台服务器传输到另一台服务器

我正在尝试使用以下配置进行站点到站点的传输。我有一台旧服务器 (server-A)、一台新服务器 (server-B) 和我的工作站 (wks),我想在其上启动传输。

wks 和服务器 A/B 之间已完成 SSH 密钥交换。

服务器A和服务器B没有交换密钥。

我从我的工作站尝试了以下命令

scp -r root@server-A:/path/to/source/ root@server-B:/destination/path

但它不起作用。据我所知,服务器 A 尝试连接服务器 B,但由于没有进行密钥交换,因此失败。

您知道如何让文件传输适用于这个特定的配置吗?

答案1

使用服务器 A 和服务器 B 之间的直接连接传输文件是首选方法。这就是scp正在尝试做的事情。man 1 scp

-3
两个远程主机之间的副本通过本地主机传输。如果没有此选项,数据将直接在两个远程主机之间复制。请注意,此选项会禁用进度表。

您说得对,如果没有-3“服务器 A 尝试连接到服务器 B”这个选项。我的测试表明,即使服务器 B 允许基于密码的身份验证,与 tty 交互(同时被要求输入密码)也很可能成为问题。在这种情况下此评论看起来有用:

ssh进入服务器 A,在服务器 A 上启动scp(一个命令)。避免复制文件两次。

明确ssh进入服务器 A 后,scp调用该服务器与 tty 交互时应该不会出现问题,同时询问服务器 B 的密码。或者,您可以ssh进入服务器 B 并scp在那里调用。

如果不可能(需要密钥,不允许输入密码),请scp -3在您的工作站上使用。显然,这将使用您的本地计算机作为一种代理,因此数据将在其网络连接上上下流动。

但并非所有scp实现都支持-3

相关内容