这几天用 mstsc Windows 远程桌面的朋友可能会遇到错误:
目前成都创新互联公司已为1000+的企业提供了网站建设、域名、虚拟主机、网站托管运营、企业网站设计、吴忠网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。原因在于最近 windows悄悄进行了一次强制更新,然后部分电脑远程登录出现这样的错误提示:
出现身份验证错误。
要求的函数不收支持。
远程计算机:xxx.xxx.xxx.xxx
远程计算机 这可能是由于CredSSP加密Oracle修正。
若要了解详细信息,请访问 https://go.microsoft.com/fwlink/?linkid=866660
出现身份验证错误。要求的函数不收支持。远程计算机 这可能是由于CredSSP加密Oracle修正。
这都是什么垃圾翻译呀,狗屁不通。
其实事情是这样的:
远程桌面使用的是“凭据安全支持提供程序协议 (CredSSP) ”,这个协议在未修补的版本中是存在漏洞的。
于是微软在 2018 年 3 月 13 日在补丁中解决了这个问题,但是默认并没有强制使用新的协议,因为一旦强制使用,假如服务器端和客户端不匹配,将无法连接。所以用户并不会感知到。
在 2018 年 5 月 8 日,微软在补丁中将客户端策略提严了一点,mstsc 登录就会有提示了,就会出现如上的错误了,用户就会知道这事了。
更进一步
关于微软这次更新,有个配置,更改这个配置可以决定是使用以前的那种连接,还是修补过的连接。这个问题会影响到服务器端和客户端 ,所以这个配置在服务器端和客户端均可配置。
针对服务器端
如果这个值是 0,那么要求客户端必须是修补了 CredSSP 的。
如果这个值是 1,那么要求客户端可以是没修补 CredSSP 的。
如果这个值是 2,那么要求客户端可以是没修补 CredSSP 的。(和 1 一样)
2018 年 5 月 8 日,微软将这个默认值修改为了 1。
针对客户端
如果这个值是 0,那么要求服务端必须是修补了 CredSSP 的。(和 1 一样)
如果这个值是 1,那么要求服务端必须是修补了 CredSSP 的。
如果这个值是 2,那么要求服务端可以是没修补 CredSSP 的。
2018 年 5 月 8 日,微软将这个默认值修改为了 1。
也就是说:
0:服务器端、客户端都必须是修补了 CredSSP 的。
1:服务器端没要求客户端、但是客户端要求服务器端是修补了 CredSSP 的。
2:服务器端、客户端都可以是没修补 CredSSP 的。
怎么处理?
根据需求,修改这个值,比如现在还没准备好全部打补丁,那么就都修改为 2。
法一、在服务器端、客户端中运行 gpedit.msc 中:“计算机配置”->“管理模板”->“系统”->“凭据分配”,这里面有个“加密 Oracle 修正”,改之。
法二、如果是 Windows 10 家庭版,没有 gpedit.msc,那么就直接改注册表吧:
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters
新建一个 32 位的、DWORD 类型的 AllowEncryptionOracle,然后为其设置相应的值。
注意:
注册表中可能没有相应的项,那就新建。64 位系统,新建 32 位值才生效。
最后需要重启。
进步型解决:
客户端下载微软补丁解决,下载地址:https://portal.msrc.microsoft.com/zh-cn/security-guidance/advisory/CVE-2018-0886 ,选择配套自己的机器的补丁包进行下载,安装后即可使用远程桌面连接。
此方法属于顺应微软处理漏洞的方式,服务端客户端同时打补丁升级系统。因此取名进步型解决方法
方法三:(工程师模式)系统管理员请看下文:
(后续内容部分取自:http://www.cftea.com/m/c.asp?docID=8182 )
关于微软这次更新,有个配置,更改这个配置可以决定是使用以前的那种连接,还是修补过的连接。这个问题会影响到服务器端和客户端 ,所以这个配置在服务器端和客户端均可配置。
【针对服务器端】
如果这个值是 0,那么要求客户端必须是修补了 CredSSP 的。
如果这个值是 1,那么要求客户端可以是没修补 CredSSP 的。
如果这个值是 2,那么要求客户端可以是没修补 CredSSP 的。(和 1 一样)
2018 年 5 月 8 日,微软将这个默认值修改为了 1。
【针对客户端】
如果这个值是 0,那么要求服务端必须是修补了 CredSSP 的。(和 1 一样)
如果这个值是 1,那么要求服务端必须是修补了 CredSSP 的。
如果这个值是 2,那么要求服务端可以是没修补 CredSSP 的。
2018 年 5 月 8 日,微软将这个默认值修改为了 1。
也就是说:
0:服务器端、客户端都必须是修补了 CredSSP 的。
1:服务器端没要求客户端、但是客户端要求服务器端是修补了 CredSSP 的。
2:服务器端、客户端都可以是没修补 CredSSP 的。
怎么处理?
根据需求,修改这个值,比如现在还没准备好全部打补丁,那么就都修改为 2。
方法一、在服务器端、客户端中运行 gpedit.msc 中:“计算机配置”->“管理模板”->“系统”->“凭据分配”,这里面有个“加密 Oracle 修正”,改之。
方法二、如果是 Windows 10 家庭版,没有 gpedit.msc,那么就直接改注册表吧:
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters
新建一个 32 位的、DWORD 类型的 AllowEncryptionOracle,然后为其设置相应的值。
注意:
注册表中可能没有相应的项,那就新建之。
还有我是 64 位系统,但是新建的 64 位值无效,我新建了 32 位值才生效。
最后需要重启。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站题目:服务器远程登录失败-CredSSP报错-创新互联
网页路径:http://scgulin.cn/article/ddscoj.html