使用 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/