Windows 11家庭版远程桌面遇到的无法连接问题

253 阅读4分钟

在网络普及的今天,远程桌面是一项基础的常用技能,小到家庭部署的NAS,大到企业私有云建设及管理都会用到。 今天在测试使用本地Windows 11家庭中文版远程桌面连接Windows 7企业版虚拟机时出现了以下报错窗口:

错误图片.png

-- 排查&分析思路:

  1. Windows 7虚拟机的远程桌面设置问题?
    • 在计算机属性-远程设置中已经设置为允许远程连接并使用网络级别身份验证的远程桌面计算机连接

远程设置.png

  1. Windows 7新增的普通用户有没有远程连接权限组的权限?
    • 我是在计算机-管理-本地用户和组-用户的图形化界面中设置的,各位也可以在命令行设置,效果是一样的。这里确认我新建的rdpuser是隶属于Remote Desktop Users的

用户权限组设置.png 3. 根据报错信息查看NTLM设置。 【NTLM定义】:NTLM是NT LAN Manager的缩写,这也说明了协议的来源。NTLM是指 telnet 的一种验证身份方式,即问询/应答身份验证协议,是 Windows NT 早期版本的标准安全协议,Windows 2000支持 NTLM 是为了保持向后兼容。是Windows 2000内置三种基本安全协议之一。(转载于百度百科)转载链接:baike.baidu.com/item/NTLM/6… 随即找到组策略win+r -> gpedit.msc中相关NTLM策略设置:

NTLM设置.png

NTLM设置1.png 这里3条策略项点击进去后,都需要设置主机ip或域名的关联信息,代表你允许哪些主机联入。 设置结束后,使用win+r -> gpupdate /force强制更新组策略,或者重新启动虚拟机。 重启后再次尝试使用物理主机远程桌面,报错依旧。

  1. 回查报错信息,其中还有个可能是CredSSP加密Oracle修正的原因所致。 【CredSSP定义】:Credential Security Support Provider,是Windows用于远程桌面(RDP)、PowerShell Remoting等场景的一种身份验证协议,它负责在客户端和服务器之间安全传输凭据(如用户名和密码)。 那什么又是“加密Oracle修正”?

-- 背景
2018 年,微软发现 CredSSP 协议存在漏洞(CVE-2018-0886) ,攻击者可以利用  "加密 Oracle"(Encryption Oracle)  进行中间人攻击(MitM),篡改加密数据并获取用户凭据。

  • 微软的修复方案
    微软发布了补丁(KB4093492),引入了  "加密 Oracle 修正"(Encryption Oracle Remediation)  策略,强制 CredSSP 使用更严格的加密方式,防止攻击者利用该漏洞。 其中有三种防护级别:

    A. 强制更新的客户端 0 最安全,仅允许已修复漏洞的系统链接

    B. 缓解 1 允许旧版链接,但会记录警告(默认值)

    C. 易受攻击 2 允许未修复的系统连接(降低安全性)

按照这个思路,出于安全性考虑,Windows系列操作系统默认未配置“便于远程桌面连接”的设置,那我们把它改成安全性低,也就是“易受攻击”的级别就可以了。结果我在打开组策略编辑器时就翻车了,因为Windows 11家庭版属于简易版客户端,并未安装组策略编辑器组件。因此想要在图形化界面修改并不可能了。经反复测试,直接通过注册表修改,或者使用管理员进入cmd键入添加注册表键值语句可以达成修改CredSSP加密Oracle修正防护级别的目的:

第一种方法:通过注册表修改

Win+R键,输入regedit,确定

regedit.png

根据上方的地址,找到对应键值。这里需要注意的是,Win11家庭版系统到\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\这个级别下方就没有CredSSP\Parameters选项了,此时可以右键System,选择新建->项(命名为CredSSP)。再在新建的CredSSP项右键新增Parameters项,最后一级需要右键Parameters项,新建->DWORD 32位 值,并赋值2(十六进制和十进制中2的表示相同,选择任意一个都行)。注册表里的项是一种用于注册表的层级架构,可以简单理解为注册表的节点,或者多级文件夹。 找到键值选项.png

第二种方法:进入命令行用命令一键添加注册表键值

注意这里要用管理员打开命令行,因为我已经添加过了,中间会有一行值已存在是否覆盖的提示。第一次执行后会直接显示操作成功完成,命令行指令如下:

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v "AllowEncryptionOracle" /t REG_DWORD /d "2" 

cmd.png

至此,重启物理主机后,可以正常连接了。

RDP success.png

========================================================= 如果有一些物理主机,本身就是专业版、企业版或者旗舰版的,有可能也会出现这个问题。可以在组策略编辑器里直接修改,以下是图示方法:

选择到凭据-加密数据库修正.png

更改保护级别.png

以上两张截图转载于阿里云-jianz123的文章 转载链接:developer.aliyun.com/article/163…