scp 远程A:文件 远程B:

scp 远程A:文件 远程B:

使用 scp 我可以得到一个文件

 scp remoteA:file .

并放入一个文件

 scp file remoteB:

但当我尝试

 scp remoteA:file remoteB:

我明白了

ssh: Could not resolve hostname remoteB: Name or service not known
lost connection

为什么?

编辑:

remoteA 和 remoteB 描述位于 ~/.ssh/config 中

答案1

可能与 scp 本身无关,而是从一个主机到另一个主机的某种名称解析。另一件要考虑的事情是身份验证。最好有一个从 A 到 B 的无密码密钥身份验证。您在哪个主机的 .ssh/config 中定义这些主机?scp 没有找到该定义。如果主机定义是问题所在,请尝试主机的真实 fqdn,它应该可以正常工作。此外,使用 -v 查看是否可以找到有关错误的更多详细信息。

答案2

您需要指定一个remoteA可以访问的主机,因为复制是remoteA直接从 到 进行的remoteB

为了避免这种情况,您可以使用该-3选项。man scp说明它的作用:

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

答案3

对于那些因为 scp 指控本地文件是它无法解析的主机名(另一个来源)而来到这里的人名称或服务未知), 例如:

> scp archive_2017-03-01-09:54:02.tar.gz backupserver:/var/backups/
ssh: Could not resolve hostname archive_2017-03-01-09:54:02.tar.gz: Name or service not known

解决方法:

> scp ./archive_2017-03-01-09:54:02.tar.gz backupserver:/var/backups/

相关内容