从本地 Windows 机器传输到远程 Linux 服务器

从本地 Windows 机器传输到远程 Linux 服务器

有时我无法从 FileZilla(我使用它从 Windows 笔记本电脑传输文件)访问我的工作服务器。我尝试使用以下命令从命令行传输文件:

scp -P myport D:\Users\myname\test.txt myname@serverIP:/data/myname

但是我收到此错误:

ssh: Could not resolve hostname d: Temporary failure in name resolution
Host key verification failed.

其他同事(使用 Linux)连接时遇到问题,删除后/home/myname/.ssh/known_hosts 问题就解决了。我在 Windows 中找不到任何known_hosts文件。我只有一个D:/Users/myname/.ssh 文件夹id_rsa。我还尝试过

ssh-keyscan -t rsa @serverIP 

但我明白

getaddrinfo @serverIP: Name or service not known

是什么阻止我从 Windows 复制到我的服务器?我也不是很有经验,所以可能只是一些拼写错误或格式问题。我在服务器上的 MobaXterm(用于连接到服务器的接口)会话中执行所有这些操作,这可能是问题所在。我应该遵循这个答案反而?

编辑:我的 Windows 目录是 D:/,而不是 C:/

答案1

问题在于 scp 使用 来:分隔远程主机名和文件名。因此,当这是一个本地文件时,它会尝试联系主机“D”。

相反,将当前驱动器更改为 D:(或更改为完整目录并且根本不包含路径)并直接复制不带 D: 的文件

此外,要使 scp 正常工作,您需要敏锐地意识到什么是本地的,什么是远程的。要使它正常工作,您需要在本地 shell 中运行它,而不是在远程 shell 中运行它。您不能在服务器上运行此命令,并期望它能够接触到您的本地非服务器台式机或笔记本电脑。此外,Windows 机器必须是本地的,因为您可能在那里运行 ssh/scp,而不是在 Windows 下运行 sshd。

相关内容