如何让Windows Server 2022中的Microsoft OpenSSH服务开机自动启动?
碰到这种情况确实挺头疼的——明明手动启动服务一切正常,可VM重启后它就是不自动跑起来。我来给你几个实用的排查和解决思路,你可以一步步试试:
检查服务登录账户的权限
默认情况下,OpenSSH SSH Server服务使用的是NT SERVICE\sshd账户。有时候这个账户的权限不足以让服务在开机时自动启动,你可以尝试临时切换到Local System账户测试:打开服务管理器,找到“OpenSSH SSH Server”,右键属性→登录,选择“本地系统账户”,勾选“允许服务与桌面交互”(测试用,后续可根据安全需求调整),然后重启VM看看是否正常启动。查看系统事件日志找原因
服务启动失败通常会在事件日志里留下线索。打开「事件查看器」,依次展开「Windows日志」→「系统」,然后在右侧筛选当前日志,选择“来源”为Service Control Manager的事件。这里会显示服务启动失败的具体错误代码或原因,比如依赖服务未启动、权限不足等,根据日志信息再针对性解决。手动添加服务依赖(如果日志显示依赖问题)
虽然服务属性的「依赖项」标签没显示,但有些情况下OpenSSH确实依赖其他基础服务(比如LanmanServer、Network List Service等)。你可以用命令行手动添加依赖:
以管理员身份打开PowerShell,执行:sc config sshd depend= LanmanServer注意等号后面有一个空格,添加后重启VM测试。如果还是不行,可以根据事件日志里的提示,添加对应的依赖服务。
重新安装OpenSSH服务
有时候安装过程中可能出现了隐性的配置错误,导致服务启动异常。你可以先卸载再重装:- 管理员PowerShell执行卸载命令:
Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 - 然后重新安装:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 - 安装完成后,设置启动类型为自动并启动服务:
Set-Service -Name sshd -StartupType 'Automatic' Start-Service sshd
最后重启VM验证效果。
- 管理员PowerShell执行卸载命令:
检查组策略是否限制了服务启动
某些组策略设置可能会阻止服务自动启动。打开「本地组策略编辑器」,依次展开「计算机配置」→「Windows设置」→「安全设置」→「系统服务」,找到「OpenSSH SSH Server」,确保它的启动类型被设置为「自动」,而不是「已禁用」或其他限制选项。
备注:内容来源于stack exchange,提问作者Binarus




