Windows 的 OpenSSH 服务器和 OpenSSH 客户端功能默认安装在 Windows Server 2025 上。 但是,对于较旧版本的 Windows Server 或 Windows 11 或 Windows 10,这种情况并不真实。 在这些系统上,OpenSSH 功能可用作可选 Windows 功能(也称为按需功能或 FoD)。
有关如何在 Windows Server 2025 中使用 OpenSSH 功能的详细信息,请参阅 适用于 Windows 的 OpenSSH 入门。
症状
尝试在受以下任何条件影响的计算机上安装 OpenSSH 功能:
- 计算机与 Internet 隔离。
- 使用组策略来管理计算机如何获取更新。
- 使用集中式网络存储或 Intranet 更新管理系统(如 Windows Server 更新服务(WSUS)来管理更新。
例如,在 Windows PowerShell 中运行时 Add-Capability ,安装会失败,并收到以下错误消息之一:
- 0x800F0954(CBS_E_NO_OPTIONAL_CONTENT_FOUND_ON_UPDATE_SERVERS)
- 0x800F0950 (COMException)
- 0x8024402C(WU_E_PT_WINHTTP_NAME_NOT_RESOLVED)
- 0x80240438(WU_E_PT_ENDPOINT_UNREACHABLE)
- 0x8024500C
此外,如果成功安装 OpenSSH 功能,则不能立即使用这些功能。
原因
如果计算机从 Windows 更新获取自动更新,或者安装媒体在本地可用,则安装 OpenSSH 功能的过程非常简单:使用用户界面或部署映像服务和管理 (DISM) Add-Capability 命令安装这些功能。
但是,以下任何条件都可能导致此作复杂化:
- 计算机与 Internet 隔离。
- 使用组策略来管理计算机如何获取更新。
- 使用集中式网络存储或 Intranet 更新管理系统(如 Windows Server 更新服务(WSUS)来管理更新。
在这些情况下,Windows 找不到它必须具有的 .cab 文件才能安装这些功能。 此结果的原因可能有所不同。 例如:
-
安装媒体不包含 OpenSSH 功能的 .cab 文件。 Windows Server 2019 版本 1809 中观察到此问题。
-
计算机使用 WSUS 管理更新,并运行早于 Windows Server 2025 或 Windows 11 版本 22H2 的 Windows Server 版本。 这些旧版本的 Windows 无法使用 WSUS 安装 OpenSSH 功能。 有关此行为的详细信息,请参阅以下文章:
- 结合使用 Windows 更新客户端策略和 WSUS
- “如何在使用 WSUS 或 Configuration Manager 时,使按需功能和语言包可用”的影响按需功能和语言包内容的高级更改部分
-
组策略设置会阻止安装。 这些设置因 Windows 版本而异。 在某些情况下,多个设置可能会相互矛盾,并导致安装失败。
决议
在开始本部分中的过程之前,请检查以下要求:
- 要在运行 Windows Server 2019(内部版本 1809)或更高版本,或 Windows 10(内部版本 1809)或更高版本的计算机上安装 OpenSSH 功能。 若要检查基于 Windows 的计算机的版本详细信息,请打开命令提示符窗口,然后输入
winver.exe。 - 使用 Windows PowerShell 5.1 或更高版本。 若要检查 PowerShell 版本,请打开 PowerShell 命令提示符窗口,然后运行
$PSVersionTable.PSVersion。 验证主版本是否至少为 5,次要版本至少为 1。 有关详细信息,请参阅 在 Windows 上安装 PowerShell。 - 您使用的是属于内置管理员组的帐户。
安装 OpenSSH 功能的具体步骤因所使用的环境而异。
| 环境 | 从本部分开始 |
|---|---|
| 目标计算机可以按需连接到 Windows 更新 | 使用 Windows 更新安装 OpenSSH 功能 |
| 目标计算机无法连接到 Windows 更新 | 从网络位置安装 OpenSSH 功能 |
| WSUS* 管理环境的更新AND计算机运行以下 Windows 版本: - Windows Server 2022 - Windows Server 2019 - Windows 11 版本 21H2 - Windows 10操作系统 |
从网络位置安装 OpenSSH 功能 |
* 此条件适用于任何 Intranet 更新管理系统。
如果安装仍然失败,请参阅 “配置组策略”以允许 OpenSSH 安装。
重要
虽然 OpenSSH 功能默认安装在 Windows Server 2025 中,但必须先启动和配置这些功能,然后才能使用这些功能。 (对于所有受支持的 Windows 版本,此过程相同。有关详细信息,请参阅 配置 OpenSSH 服务和防火墙设置。
使用 Windows 更新安装 OpenSSH 功能
使用 PowerShell 安装 OpenSSH:
-
打开管理 PowerShell 命令提示符窗口。
-
若要检查 OpenSSH 功能的状态,请运行以下 cmdlet:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'如果尚未安装这些功能,该命令将返回类似于以下摘录的输出:
Name : OpenSSH.Client~~~~0.0.1.0 State : NotPresent Name : OpenSSH.Server~~~~0.0.1.0 State : NotPresent -
若要安装所需的服务器或客户端组件,请运行以下 cmdlet:
# Install the OpenSSH Client Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 # Install the OpenSSH Server Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0这两个命令应返回类似于以下摘录的输出:
Path : Online : True RestartNeeded : False
重要
安装 OpenSSH 功能后,必须先启动并配置这些功能,然后才能使用这些功能。 (对于所有受支持的 Windows 版本,此过程相同。有关详细信息,请参阅 配置 OpenSSH 服务和防火墙设置。
从网络位置安装 OpenSSH 功能
若要检查 OpenSSH 功能的状态,请打开管理 PowerShell 命令提示符窗口,然后运行以下 cmdlet:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
如果尚未安装这些功能,该命令将返回类似于以下摘录的输出:
Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
下载 FoD ISO 映像
检查 Windows 计算机的版本详细信息。 打开命令提示符窗口,然后输入 winver.exe。 请注意 Windows 的完整版本号,包括内部版本号。
可以从以下任何位置下载 FoD ISO 包。
| 来源 | 详细信息或要求 |
|---|---|
| Microsoft 365 管理门户 | 必须有一个管理Microsoft 365 帐户。 此门户已取代批量许可服务中心(VLSC) |
| 原始设备制造商(OEM) | 通常,必须从 OEM 获得支持协议。 |
| Microsoft评估中心 | 此站点可能不包含旧版 Windows 的包。 |
| MSDN-Platforms | 必须具有 Visual Studio(以前为 MSDN)订阅。 |
| GitHub (PowerShell/openssh-portable 或 Win32-OpenSSH GitHub Releases)。 | 如果使用 GitHub 包,请按照相关存储库中提供的说明安装它们。请注意,如果使用 GitHub 手动安装 OpenSSH,则需负责配置和所有将来的更新。 有关详细信息,请参阅 OpenSSH for Windows 入门。 |
重要
- FoD ISO 包应与 Windows 版本匹配。 例如,如果要在运行 Windows 11 版本 21H2 的计算机上安装 OpenSSH 功能,请下载特定于 Windows 11 版本 21H2 的包。
- 如果要在 Windows Server 2019 上安装 OpenSSH 功能,请下载匹配的 Windows 10 版本的程序包和匹配 Windows Server 2019 版本的包(例如,Windows 10 版本 1809 for Windows Server 2019 版本 1809)。
- 将下载的文件存储在可从要安装这些功能的计算机访问的驱动器或网络共享上。
安装 OpenSSH 功能
Windows Server 2019
若要准备在 Windows Server 2019 上安装这些功能,请执行以下步骤:
-
创建目标计算机可以访问的文件夹(例如 C:\FOD)。
-
将 Windows Server 2019 包的内容提取到 C:\FOD 文件夹。
-
将 Windows 10 包装载为目标计算机上的驱动器(右键单击该包,然后选择 “装载”)。
-
在 Windows 10 包中,找到类似于以下内容的文件,并将其复制到 C:\FOD 文件夹。
- OpenSSH-Client-Package~31bf3856ad364e35~amd64~~.cab
- OpenSSH-Server-Package~31bf3856ad364e35~amd64~~.cab
-
继续执行下一过程以安装 OpenSSH 功能。
所有其他 Windows 版本
若要安装 OpenSSH 功能,请执行以下步骤。
-
装载按需功能包(对于 Windows Server 2019,使用包含.CAB文件的文件夹)作为目标计算机上的驱动器(右键单击包,然后选择 装载)。
-
打开管理命令提示符窗口,然后运行以下命令:
dism /online /add-capability /capabilityname:OpenSSH.Client~~~~0.0.1.0 /source:<Drive> dism /online /add-capability /capabilityname:OpenSSH.Server~~~~0.0.1.0 /source:<Drive>注释
在这些命令中,<Drive> 表示已装载驱动器的驱动器号(例如)
E:\这两个命令应返回类似于以下摘录的输出:
Path : Online : True RestartNeeded : False
重要
安装 OpenSSH 功能后,必须先启动并配置这些功能,然后才能使用它们(此过程与所有受支持的 Windows 版本相同)。 有关详细信息,请转到下一部分。
配置 OpenSSH 服务和防火墙设置
若要启动并配置 OpenSSH 服务器以供初始使用,请打开管理 PowerShell 窗口,然后运行以下 cmdlet:
# Start the sshd service
Start-Service sshd
# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'
# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify:
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue)) {
Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}
有关详细信息,请参阅 OpenSSH for Windows 入门。
配置组策略以允许 OpenSSH 安装
如果使用组策略来管理环境,组策略设置可能会阻止你安装 OpenSSH 功能。 此外,可用策略也会随着时间推移而更改。 某些版本的 Windows 中控制 Windows 安装这些功能的方式的策略要么不存在,要么在其他版本的 Windows 中不起作用。 此外,如果特定的策略设置相互冲突,则可能无法安装这些功能。
注释
本文重点介绍组策略编辑器提供的组策略设置。 配置服务提供商(CSP)策略中也提供了相同的设置(或其等效设置)。 如需了解更多信息,请参阅以下文章:
Windows 11 版本 24H2 及更高版本以及 Windows Server 2025 及更高版本的策略设置
组策略设置:指定可选组件安装和组件修复的设置
此设置位于以下路径中:
计算机配置\管理模板\系统\
如果启用此设置,更新的默认源是 Windows 更新。 如果 Windows 无法连接到 Windows 更新,Windows 将搜索 Intranet 服务(如 WSUS)或本地网络共享。
如果禁用或未配置此策略设置,Windows 仍会从 Windows 更新下载文件(如果计算机策略设置允许)。 如果在此策略设置中指定的位置上找不到所需文件,则条件仍为 true。
有关详细信息,请参阅 策略 CSP - ADMX_Servicing。
| 策略/选项 | Windows 更新可用时的设置* | Windows 更新不可用时的设置 |
|---|---|---|
| 指定可选组件安装和组件修复的设置 | Windows 更新 (默认值)或未配置 | 网络文件夹位置 或 Intranet 服务 |
| 选项: 备用文件位置(如果策略设置为 “网络”文件夹位置) | Disabled | 包的 UNC 路径 |
* 关于 OpenSSH 功能安装,“可用”意味着安装 OpenSSH 的计算机可以直接联系 Windows 更新。 如果计算机从网络共享或 Intranet 服务获取其所有更新,效果与计算机无法连接到 Internet 的效果相同。
注释
在早期版本的 Windows 和 Windows Server 中,此策略具有其他选项。 策略的默认行为已更改。 其他选项不再相关。
其他相关的组策略设置
本节中列出的设置位于以下路径中:
计算机配置\管理模板\Windows 组件\Windows 更新\管理从 Windows Server 更新服务提供的更新
若要从 Intranet 更新服务接收任何更新,必须正确配置 “指定 Intranet”Microsoft更新服务位置 策略设置。
使用 Intranet 服务时,可以为不同的更新类指定不同的源位置(在 指定 Windows 更新策略设置特定类的源服务 选项中配置)。 在早期版本的 Windows 中,这些设置可能会与 指定可选组件安装和组件修复 设置的默认行为冲突。 但是,对“可选组件安装”设置的默认行为的更改应阻止此问题发生。
有关这些设置的详细信息,请参阅以下文章:
- 结合使用 Windows 更新客户端策略和 WSUS
- “步骤 4:为自动更新配置组策略设置”中的 “指定 Intranet Microsoft更新服务位置 ”部分
- “结合使用 Windows 更新客户端策略和 WSUS”中的默认扫描行为部分
- “规划 WSUS 部署”中的“ 按需功能注意事项 ”部分
Windows 11 版本 22H2 的策略设置 - Windows 11 版本 23H2
组策略设置:指定可选组件安装和组件修复的设置
此设置位于以下路径中:
计算机配置\管理模板\系统\
如果启用此设置,则更新的默认源为 WSUS。 如果请求的功能选项不存在,Windows 将搜索 Windows 更新(如果已连接到 Internet),然后查找本地网络共享。
| 策略/选项 | Windows 更新可用时的设置* | Windows 更新不可用时的设置 |
|---|---|---|
| 指定可选组件安装和组件修复的设置 | Windows 更新 | 网络文件夹位置 或 Intranet 服务 |
| 选项: 备用文件位置(如果策略设置为 “网络”文件夹位置) | Disabled | 包的 UNC 路径 |
| 选项: 从不尝试从 Windows 更新下载数据包 | 未选定 | 未选定 |
| 选项: 直接从 Windows 更新而不是 Windows Server Update Services 下载修复内容和可选功能 | 已选择或未选择 | 已选择(仅当未在网络文件夹中找到文件时使用) 或未选择 |
* 关于 OpenSSH 功能安装,“可用”意味着安装 OpenSSH 的计算机可以直接联系 Windows 更新。 如果计算机从网络共享或 Intranet 服务获取其所有更新,效果与计算机无法连接到 Internet 的效果相同。
选项 从不尝试从 Windows 更新下载有效负载 和 直接从 Windows 更新下载修复内容和可选功能,而不是通过 Windows Server Update Services 通常在 Windows 11 版本 22H2 及更高版本中是不需要的。 这些选项在早期版本的 Windows 中更为重要。 它们已在 Windows 11 版本 24H2 中删除。
其他相关的组策略设置
本节中列出的设置位于以下路径中:
计算机配置\管理模板\Windows 组件\Windows 更新\管理从 Windows Server 更新服务提供的更新
若要从 Intranet 更新服务接收任何更新,必须正确配置 “指定 Intranet”Microsoft更新服务位置 策略设置。
如果您使用内联网服务进行更新,并且为可选组件安装和组件修复指定设置设置为Windows 更新,请为指定特定 Windows 更新类的源服务使用以下配置之一:
- 禁用为特定类的 Windows 更新指定源服务(或保持未配置)。 在此配置中,Windows 依赖于其默认行为来查找 OpenSSH 安装包。
- 将 功能更新 和 质量更新 选项都设置为 Windows 更新。 这些设置避免与 用于可选组件安装和组件修复的设置冲突。
有关这些设置的详细信息,请参阅以下文章:
- 如何在使用 WSUS 或 Configuration Manager 时使按需功能和语言包可用
- “规划 WSUS 部署”中的“ 按需功能注意事项 ”部分
- 适用于 Windows 的 OpenSSH 入门
- 结合使用 Windows 更新客户端策略和 WSUS
- “步骤 4:为自动更新配置组策略设置”中的 “指定 Intranet Microsoft更新服务位置 ”部分
Windows Server 2022、Windows 11 版本 21H2 和 Windows 10 版本 2004 的策略设置 - Windows 10 版本 22H2
组策略设置:指定可选组件安装和组件修复的设置
此设置位于以下路径中:
计算机配置\管理模板\系统\
如果启用此设置,则更新的默认源为 WSUS。 如果请求的功能选项不存在,Windows 将搜索 Windows 更新(如果已连接到 Internet),然后查找本地网络共享。
| 策略/选项 | 如果 Windows 更新可用/* | Windows 更新不可用时的设置 |
|---|---|---|
| 指定可选组件安装和组件修复的设置 | Windows 更新 | 网络文件夹位置 |
| 选项: 备用文件位置(如果策略设置为 “网络”文件夹位置) | Disabled | 包的 UNC 路径 |
| 选项: 从不尝试从 Windows 更新下载数据包 | 未选定 | 未选定 |
| 选项: 直接从 Windows 更新而不是 Windows Server Update Services 下载修复内容和可选功能 | 已选中 | 已选择(仅在网络文件夹中找不到文件时使用) |
* 关于 OpenSSH 功能安装,“可用”意味着安装 OpenSSH 的计算机可以直接联系 Windows 更新。 如果计算机从网络共享或 Intranet 服务获取其所有更新,效果与计算机无法连接到 Internet 的效果相同。
其他相关的组策略设置
本节中列出的设置位于以下路径中:
计算机配置\管理模板\Windows 组件\Windows 更新\管理从 Windows Server 更新服务提供的更新
若要从 Intranet 更新服务接收任何更新,必须正确配置 “指定 Intranet”Microsoft更新服务位置 策略设置。
如果您使用内联网服务进行更新,并且为可选组件安装和组件修复指定设置设置为Windows 更新,请为指定特定 Windows 更新类的源服务使用以下配置之一:
- 禁用为特定类的 Windows 更新指定源服务(或保持未配置)。 在此配置中,Windows 依赖于其默认行为来查找 OpenSSH 安装包。
- 将 功能更新 和 质量更新 选项都设置为 Windows 更新。 这些设置避免与 用于可选组件安装和组件修复的设置冲突。
有关这些设置的详细信息,请参阅以下文章:
- 如何在使用 WSUS 或 Configuration Manager 时使按需功能和语言包可用
- “规划 WSUS 部署”中的“ 按需功能注意事项 ”部分)
- 配置扫描来源 (请参阅“Windows 更新客户端策略与 WSUS 的组合使用”)
- “步骤 4:为自动更新配置组策略设置”中的 “指定 Intranet Microsoft更新服务位置 ”部分
Windows Server 2019 和 Windows 10 版本 1709 的策略设置 - Windows 10 版本 1809
组策略设置:指定可选组件安装和组件修复的设置
此设置位于以下路径中:
计算机配置\管理模板\系统\
如果启用此设置,则更新的默认源为 WSUS。 如果请求的功能选项不存在,Windows 将搜索 Windows 更新(如果已连接到 Internet),然后查找本地网络共享。
| 策略/选项 | 如果 Windows 更新可用/* | Windows 更新不可用时的设置 |
|---|---|---|
| 指定可选组件安装和组件修复的设置 | Windows 更新 | 网络文件夹位置 |
| 选项: 备用文件位置(如果策略设置为 “网络”文件夹位置) | Disabled | 包的 UNC 路径 |
| 选项: 从不尝试从 Windows 更新下载数据包 | 未选定 | 未选定 |
| 选项: 直接从 Windows 更新而不是 Windows Server Update Services 下载修复内容和可选功能 | 已选中 | 已选择(仅在网络文件夹中找不到文件时使用) |
* 关于 OpenSSH 功能安装,“可用”意味着安装 OpenSSH 的计算机可以直接联系 Windows 更新。 如果计算机从网络共享或 Intranet 服务获取其所有更新,效果与计算机无法连接到 Internet 的效果相同。
有关这些设置的详细信息,请参阅以下文章:
- 如何在使用 WSUS 或 Configuration Manager 时使按需功能和语言包可用
- “规划 WSUS 部署”中的“ 按需功能注意事项 ”部分
References
- “规划 WSUS 部署”中的“ 按需功能注意事项 ”部分
- 适用于 Windows 的 OpenSSH 入门
- 如何在使用 WSUS 或 Configuration Manager 时使按需功能和语言包可用
- 管理其他 Windows 更新设置
- 在更新期间迁移和获取可选 Windows 内容
- OpenSSH for Windows 概述
- 策略 CSP - ADMX_Servicing
- 策略 CSP - 更新
- “步骤 4:为自动更新配置组策略设置”中的 “指定 Intranet Microsoft更新服务位置 ”部分
- 结合使用 Windows 更新客户端策略和 WSUS
- Win32-OpenSSH GitHub 发布