有一次,我在运行 Fall Creators Update(版本 1709)时将 OpenSSH Client 作为可选功能安装。此后,我将 Windows 更新到版本 1803,不再安装 OpenSSH Client。如何恢复它?
我的理解是,更新到 Windows 10 版本 1803(2018 年 4 月)后,OpenSSH 客户端自动安装。但是,它没有安装,而且我在网上看到的信息如何安装 OpenSSH似乎适用于 Windows 10 的早期版本,当时 OpenSSH 客户端处于测试阶段。
我在管理可选功能但没有看到列出:
从管理可选功能,我尝试选择添加要素查看 OpenSSH 是否存在,但看到“没有要安装的功能”:
当我拥有秋季创意者更新 (版本 1709) 并且 OpenSSH 处于测试阶段时,我使用上面的管理可选功能成功安装了它。我不知道为什么它现在没有安装,我找不到任何地方可以安装它。
当看着查看可选功能历史记录,我看到 OpenSSH 客户端已于 2018 年 4 月 12 日安装,并且卸载2018 年 8 月 10 日。我不记得明确卸载过它,但就在那一天,我安装了一些 Windows 更新,更新后不得不重启几次。
我也尝试在标准 Windows 功能下寻找它(打开和关闭 Windows 功能)建议这个答案但我没看到它被列出。(我甚至尝试展开所有可折叠的项目,只是为了确保它没有隐藏在 IIS 或其他地方):
我也重新启动了几次,看看它是否作为干净启动后启用/安装的功能出现,但仍然没有。
我已确认已更新至 Windows 10 Pro 版本 1803,操作系统内部版本 17134.191。无需再安装 Windows 更新。
我还没有 ssh 客户端。我看到ssh-agent.exe
、ssh-add.exe
、ssh-keygen.exe
甚至sshd.exe
(OpenSSH 服务器!) 在 下可用C:\Windows\Sysetm32\OpenSSH
。但没有ssh.exe
(OpenSSH 客户端)。
如何在 Windows 10 版本 1803 上安装 OpenSSH 客户端?
有没有办法直接下载微软的安装包然后安装呢?
答案1
回答我自己的问题并为任何想要弄清楚如何在 Windows 10 的各个版本上安装 OpenSSH 的人提供额外的信息。
首先,明确回答以下问题:
我已将 Windows 更新至版本 1803,不再安装 OpenSSH 客户端。我该如何恢复它?
这不应该发生。此 Windows 系统似乎出了问题,或者有人修改了默认安装选项(如其他人所建议的那样)。(有多种原因可能导致可选功能不可用。请参阅这个答案举一些例子。
在完成 Windows 10 版本 1709 的全新安装并更新到版本 1803 后,我已经验证了这一点。当更新到 Windows 10 版本 1803 时,如果未进行任何更改或安装任何其他软件包,则 OpenSSH 客户端会作为更新的结果自动安装。
如何在 Windows 10 版本 1803 上安装 OpenSSH 客户端?
请参阅下面的部分以了解安装Windows 10 版本 1803(2018 年 4 月)。
有没有办法直接下载微软的安装包然后安装呢?
是的。可以直接从 Microsoft 的Win32的OpenSSHGitHub 上的项目。请参阅替代安装方法请参阅下面的部分了解详情。这也使得安装更新版本的 OpenSSH 成为可能。
Windows 10 版本 1709(秋季创意者版本)
如果运行的是 Windows 10 版本 1709(秋季创意者版),则有两种主要方式安装 OpenSSH。如果您运行的是 1709 之前的 Windows 10 版本,则需要通过自动更新更新到较新版本的 Windows 10。(也可以使用替代安装方法(旧版本 Windows 上列出的版本除外。)
选项 1:更新至 Windows 10 版本 1803,OpenSSH 客户端将自动安装。请参阅Windows 10 版本 1803(2018 年 4 月)请参阅下面的部分了解更多详细信息。
选项 2:OpenSSH 客户端(测试版)和 OpenSSH 服务器(测试版)在此版本的 Windows 中作为可选功能提供。要安装 OpenSSH 可选功能:
从管理可选功能->添加要素, 选择OpenSSH 客户端(测试版)以及(如果需要)OpenSSH 服务器(测试版)安装:
微软提供了有关在该版本 Windows 中安装 OpenSSH Beta 的说明,其中还介绍了配置和使用 OpenSSH 的其他步骤,可在此处找到:在 Windows 10 Fall Creators Update 和 Windows Server 1709 中使用 OpenSSH Beta
Windows 10 版本 1803(2018 年 4 月)
更新到 Windows 10 版本 1803 后,OpenSSH 客户端应该已经安装。如果你已确认你正在运行 Windows 10 版本 1803,但未安装 OpenSSH 客户端,请参阅以下部分替代安装方法。
OpenSSH 客户端已安装并列在下方管理可选功能:
OpenSSH 服务器在此版本的 Windows 中作为可选功能提供。要安装 OpenSSH 服务器,请从管理可选功能->添加要素, 选择OpenSSH 服务器安装:
替代安装方法
可以使用此处列出的替代安装方法风险自负如果上述选项不起作用。它们也应该适用于旧版本的 Windows。
这些方法也可以用于安装较新版本的 OpenSSH:
- Windows 10 版本 1709(秋季创意者更新)安装 OpenSSH 版本 7.5p1(发布为版本 0.0.18.0由微软于 2017 年 7 月推出)。
- Windows 10 版本 1803(2018 年 4 月更新)安装 OpenSSH 版本 7.6p1(发布为v7.6.0.0p1-Beta由微软于 2018 年 2 月推出)。
- 最多Win32-OpenSSH 的最新发布在撰写本文时似乎是基于 7.7.2 版本。
从 Win32-OpenSSH GitHub 项目安装
按照Win32-OpenSSH 维基关于微软Win32的OpenSSHGitHub 项目。密切关注 Wiki 说明和 Win32-OpenSSH 的版本,因为它们会定期更改。
通过 Chocolately 安装 OpenSSH
如果你是巧克力色, AWin32 OpenSSH有巧克力包装可供选择。
然而,这种方法不再被 Microsoft 推荐和Microsoft Win32-OpenSSH Wiki 明确指出这是“已弃用的”(即不推荐),即使 Chocolately 包的最新版本已经发布并可用。
如果你选择这条路线,请务必阅读使用 Chocolatey 自动安装和升级 Win32 OpenSSH链接Win32-OpenSSH 维基。
答案2
我的理解是,更新到 Windows 10 版本 1803(2018 年 4 月)后,OpenSSH 客户端会自动安装。但是,它没有安装,而且我在网上看到的有关如何安装 OpenSSH 的信息似乎适用于以前版本的 Windows 10,当时 OpenSSH 客户端处于测试阶段。
根据原始配置,如问题中所述,在提升的 PowerShell 中,以下命令Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
将打印以下内容。
名称:OpenSSH.Client~~~~0.0.1.0
状态 :不存在
名称:OpenSSH.Server~~~~0.0.1.0
状态 :不存在
同样,运行以下命令将安装 OpenSSH 客户端和 OpenSSH 服务器。
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
运行与之前相同的命令Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
,重新启动后将生成以下输出。
名称:OpenSSH.Client~~~~0.0.1.0
状态:已安装
名称:OpenSSH.Server~~~~0.0.1.0
状态:已安装
我可以确认 OpenSSH 客户端确实在 1803 上默认安装,同样,OpenSSH 服务器是一个必须启用的可选功能。
我还尝试按照此答案的建议在标准 Windows 功能 (打开和关闭 Windows 功能) 下寻找它,但我没有看到它列出。 (我甚至尝试展开所有可折叠的项目,只是为了确保它没有隐藏在 IIS 或类似的东西下):
与该功能处于测试阶段时不同,它不会出现在 Windows 可选功能的传统列表中。它仅出现在“设置”中访问的列表中。顺便说一下,在 Windows 10 1709 和 Windows 10 1803 之间安装 OpenSSH 客户端和 OpenSSH 服务器的命令是相同的。
在 Windows 10 Fall Creators Update 和 Windows Server 1709 中使用 OpenSSH Beta
答案3
如果您像我一样遇到此问题,因为您已安装 openssh,但在 power shell 中收到“无法识别”错误,以下是对我有用的方法:
- 通过设置中的“可选功能”菜单卸载 openssh 客户端
- 重新安装刚刚卸载的内容
- 重启
- 重新启动
我不知道为什么需要第二次重启,但一次重启后 %SYSTEMROOT%\System32\OpenSSH\ 已正确添加到我的 $env:PATH,但我仍然收到“无法识别”错误,但再次重启后问题得到了解决。
答案4
我再次处理同样的问题,所以我把这个放在这里提醒自己,因为我总是忘记这个问题:
以管理员身份打开 Windows Powershell 并输入以下两个命令:
安装 OpenSSH 客户端
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
安装 OpenSSH 服务器
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
这两个命令都应该返回以下输出:
在线:真实
RestartNeeded :False
然后进行配置:
Start-Service sshd
可选但建议:
Set-Service -Name sshd -StartupType 'Automatic'
确认防火墙规则已配置。它应该由安装程序自动创建。
Get-NetFirewallRule -Name *ssh*
应该有一个名为“OpenSSH-Server-In-TCP”的防火墙规则,应该启用该规则。如果防火墙不存在,请创建一个
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -
方向Inbound -Protocol TCP -Action Allow -LocalPort 22
它说不需要像往常一样重新启动,但安装服务后总是重新启动 Windows。
这是来自 Microsoft 官方帮助网站。