当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 Windows 计算机上使用 OpenSSH 安全传输文件

作者:精品下载站 日期:2024-12-14 05:55:19 浏览:13 分类:玩电脑

在 Windows 计算机上使用 OpenSSH 安全传输文件


Linux 和 Unix 管理员习惯于使用开放安全外壳 (OpenSSH) 连接到服务器,因为它已经包含在这些系统中数十年了。另一方面,Windows 用户传统上必须下载 Putty 或 WinSCP 等第三方工具才能利用 SSH 功能。

然而,当 OpenSSH 在 Windows 10 和 Windows Server 2019 中作为可选功能提供时,情况发生了变化。由于 Windows 现在本身提供 SSH 服务器和 SSH 客户端,因此没有理由使用没有加密功能的 telnet 或 FTP - SSH当您需要通过网络连接连接到服务器或复制文件时,可提供卓越的安全性。

本文详细介绍了如何安装 OpenSSH 并使用它通过 WinSCP 或 PowerShell 安全地传输文件。

OpenSSH 有何用途?

OpenSSH 是一种使用 SSH 协议通过计算机网络提供安全通信会话的工具。它可用于多种任务,包括:

  • 安全登录远程计算机以执行服务器管理或技术支持命令。
  • 在两台计算机之间安全地复制或移动文件。

这些任务是安全的,因为 OpenSSH 包含安全复制协议 (SCP) 和 SSH 文件传输协议 (SFTP),并且 OpenSSH 通过安全隧道对所有流量进行加密,使您能够通过 Internet 或不安全的网络传输敏感数据。当客户端和服务器交换公钥时,就会创建隧道。

如何在 Windows 上添加 OpenSSH 功能

先决条件

要在 Windows 计算机上安装 OpenSSH:

  • 该设备必须至少运行 Windows Server 2019 或 Windows 10(内部版本 1809)。
  • 计算机必须运行 PowerShell 5.1 或更高版本。
  • 您必须使用属于内置管理员组成员的帐户。

您应该首先检查 OpenSSH 是否已安装。使用管理员 Window PowerShell 终端运行以下命令:

Get-WindowsCapability -Online -Name "Open*"

您可以在下面的屏幕截图中看到 OpenSSH 客户端已安装,但 OpenSSH 服务器未安装。

[玩转系统] 在 Windows 计算机上使用 OpenSSH 安全传输文件

您可以使用 Windows 设置或 PowerShell 安装 OpenSSH 服务器和 OpenSSH 客户端,如下所述。

使用 Windows 设置安装 OpenSSH

  1. 首先,转到“设置”的应用和功能部分,然后单击管理可选功能

[玩转系统] 在 Windows 计算机上使用 OpenSSH 安全传输文件

  • 点击添加功能

[玩转系统] 在 Windows 计算机上使用 OpenSSH 安全传输文件

  • 要安装服务器组件,请选择OpenSSH Server,然后单击安装按钮。

[玩转系统] 在 Windows 计算机上使用 OpenSSH 安全传输文件

  • 接下来,安装 SSH 客户端选择OpenSSH Client,然后单击安装。请注意,如果客户端已经安装,您将看到一个卸载按钮,如下所示;在这种情况下,无需采取任何行动。

[玩转系统] 在 Windows 计算机上使用 OpenSSH 安全传输文件

  • 使用 Windows 服务管理器将 OpenSSH 服务配置为自动运行,如以下屏幕截图所示:

[玩转系统] 在 Windows 计算机上使用 OpenSSH 安全传输文件

  • 如果启用了高级安全 Windows Defender 防火墙,则必须打开端口 22,该端口由 Internet 号码分配机构 (IANA) 分配给 SSH。

使用 PowerShell 安装 OpenSSH

或者,您可以使用 Windows PowerShell 安装 OpenSSH 服务器和客户端组件。

  1. 使用以下命令安装 OpenSSH 服务器组件:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

[玩转系统] 在 Windows 计算机上使用 OpenSSH 安全传输文件

  • 然后使用以下命令安装 OpenSSH 客户端:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
  • 然后使用以下 PowerShell 命令配置 OpenSSH 服务并启动它。
Start-Service sshd
Set-Service -Name sshd -StartupType ‘Automatic’

[玩转系统] 在 Windows 计算机上使用 OpenSSH 安全传输文件

  • 如前所述,防火墙上的端口 22 必须打开。您可以使用以下命令快速检查是否已为 OpenSSH 配置防火墙规则:
Get-NetFirewallRule -Name *ssh*

下面的输出显示规则已经创建。

[玩转系统] 在 Windows 计算机上使用 OpenSSH 安全传输文件

如果规则不存在,请使用以下命令打开 SSH 端口:

New-NetFirewallRule -Name sshd -DisplayName ‘OpenSSH Server (sshd)’ -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
  • 最后,确保一切设置正确并且 OpenSSH 守护进程正在侦听传入连接。要测试连接,请从不同的服务器或桌面计算机运行以下命令:
Test-NetConnection -ComputerName <computer name> -Port 22 -InformationLevel Detailed

如果测试成功,你会看到类似这样的内容:

[玩转系统] 在 Windows 计算机上使用 OpenSSH 安全传输文件

如果失败,则可能意味着与网络连接相关的多种情况;例如未在远程计算机上创建或启用防火墙规则。

如何使用 SSH 移动文件

使用 SSH 移动文件与使用 WinSCP 等 FTP 应用程序移动文件几乎相同。请注意,您必须具有源计算机上的文件读取权限和目标目录的写入权限。

使用 WinSCP 移动文件

首先,我们先使用 WinSCP 实用程序来测试新的 SSH 服务器。 (如果需要,您可以在此处下载WinSCP。)请注意,如果您使用WinSCP,则不需要启用OpenSSH客户端。

  1. 打开WinSCP并定义到服务器的新连接:选择新站点,确保文件协议设置为SFTP,端口设置为22(默认值),然后输入用户名,如下例所示。

[玩转系统] 在 Windows 计算机上使用 OpenSSH 安全传输文件

  • 单击登录按钮并提供您指定的帐户的密码。下一个对话框将显示服务器的 ECDSA 密钥指纹,如下图所示。 该密钥主要用于确保客户端与正确的服务器进行通信。 当客户端第一次连接到服务器时,公共主机密钥将传递给客户端。单击继续。

[玩转系统] 在 Windows 计算机上使用 OpenSSH 安全传输文件

  • 在下一个窗口中,左窗格将显示源计算机的默认文件夹,右窗格将显示目标服务器上用户的默认文件夹。导航到所需的文件夹。在下面的示例中,我们右键单击文件将其下载到客户端设备。或者,您可以将文件从一侧拖动到另一侧。

[玩转系统] 在 Windows 计算机上使用 OpenSSH 安全传输文件

使用 OpenSSH 复制文件或目录

要使用 Windows OpenSSH 复制文件,您可以使用以下 PowerShell 命令。请注意,OpenSSH 服务器和客户端都必须启用。

scp <filename> <username>@<hostname>:<directory_path>

要复制整个目录,请使用以下命令。

scp -r <local_directory_path> <username>@<hostname>:<remote_directory_path>

如果目标服务器上不存在该目录,则会创建该目录(假设您有这样做的权限)。

您还可以将文件从 Linux 和 Unix 服务器来回复制到 Windows 服务器和桌面。

经常问的问题

如何使用 SSH 移动文件?

使用类 Unix 系统时,您可以使用 mv 命令通过 SSH 将文件从一个位置移动到远程服务器上的另一个位置。

对于 Windows 计算机,您可以安装第三方 SSH 服务器和客户端应用程序,或启用 OpenSSH 功能(需要 Windows Server 2019 或 2022,或者 Windows 10 或 11)。

无论哪种情况,您都必须拥有连接的登录凭据,以及读取源计算机上的文件和目标目录上的写入权限所需的权限。

SSH 允许文件传输吗?

是的。 SSH 包括安全复制协议 (SCP) 和 SSH 文件传输协议 (SFTP),可实现本地主机和远程主机之间的文件安全传输。

如何将文件从 SSH 服务器传输到本地计算机?

将文件从 OpenSSH 服务器传输到具有受支持的 Windows 版本或 Windows Server 的计算机的一种方法是使用以下 PowerShell 命令:

scp C:\path\to\local\file username@remote-server:/path/to/remote/directory
  • C:\path\to\local\file 替换为您要在本地计算机上复制的文件的路径。
  • 用户名替换为远程服务器上的用户名。 (系统将提示您输入密码。)
  • remote-server 替换为远程服务器的主机名或 IP 地址。
  • path/to/remote/directory 替换为远程服务器上要复制文件的目录的路径。

或者,您可以使用提供易于使用的菜单的第三方 SSH 实用程序。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯