有时我无法从 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。