使用 SCP 命令将文件从 Linux 发送到 Windows

使用 SCP 命令将文件从 Linux 发送到 Windows

我知道已经有一些关于此问题的帖子,但没有一个能帮助我解决问题。我想使用 scp 命令将一个简单的文本文件从我的 Linux 机器发送到我的 Windows 10 PC。因此,这是我在 Linux 控制台中输入的内容:

scp -P80  test.txt mywindowsusername@mywindowsip:/Desktop

我使用端口 80,因为否则系统会告诉我端口 22 已关闭。

过了一会儿我收到错误:

ssh_exchange_identification: Connection closed by remote host 

lost connection

我还尝试了很多不同的命令,比如将文件复制到不同的文件夹并使用

-r

但端口之后错误总是相同的。

有人知道如何解决这个问题吗?

答案1

您说系统会告诉您 22 端口已关闭。但显然,您的系统不会告诉您 80 端口已关闭。这意味着在 Windows PC 上你正在运行一个监听 80 端口但不监听 22 端口的软件(那么这可能是一个 Web 服务器),或者防火墙在 Windows PC 上配置为允许端口 80 上的入站流量通过,但不允许端口 22 上的入站流量通过。

“scp 服务器”通常被整合到 SSH 服务器中(至少,我从未听说有人真正使用独立的 SCP 服务器)。这意味着你可能必须在你的Windows 电脑。请注意,Windows 确实不是合并这样的服务器(除非您使用随新 Windows 版本一起提供的 Microsoft Unix 子系统,但我不知道)。

在 Windows PC 上安装 SSH 服务器后,请注意它默认会监听端口 22。如果您希望它监听端口 80,则必须更改其配置。当然,确切的配置方法和步骤取决于服务器软件。

如果我是你,我会做以下事情:

1) 检查 Windows 机器上为什么打开了 80 端口(检查安装的软件是否意外运行,检查防火墙设置)。如果意外打开了 80 端口,请将其关闭。

2)在 Windows 机器上安装 SSH 服务器。

3) 配置 Windows 机器上的防火墙,让端口 22 上的 TCP 连接进入,可能限制在某些主机(您的 Linux 机器),也可能只允许某些程序(SSH 服务器)。

那么它就可以工作了。

答案2

要将文件从 Linux 复制到 Windows,请在 Windows 中执行以下命令(无需Windows SSH 服务器必需的):

scp user@ip:/dir1/dir2/file "D:\dir1\dir2"

答案3

从 Windows 计算机,通过 SSH 连接到要从中获取文件的 Linux 计算机,然后从 ssh 客户端 scp。它通过 SSH 连接上的某个二进制通道传输。

您还可以考虑在 Windows 上运行一个小型 FTP 服务器。

相关内容