操作指南

最佳实践

故障处理

API 文档

Windows 实例:发生身份验证错误

最近更新时间:2022-05-12 17:55:41

问题描述

通过远程桌面连接登录 Windows 实例时,出现以下报错:

  • “发生身份验证错误,给函数提供标志无效”,如下图所示:
    给函数提供标志无效
  • “发生身份验证错误。要求的函数不受支持”,如下图所示:
    要求函数不支持

问题分析

由于微软于2018年3月发布了一个安全更新,此更新通过更正凭据安全支持提供程序协议(CredSSP),以及在身份验证过程中验证请求的方式,修复 CredSSP 存在的远程执行代码漏洞。客户端和服务器都需要安装此更新,否则可能出现问题描述中的情况。
客户端服务器匹配情况
如上图所示,以下三种情况均会引起远程连接失败:

  • 情况一:客户端未修补,服务器安装了安全更新,并且策略配置为 “强制更新的客户端”。
  • 情况二:服务器未修补,客户端安装了安全更新,并且策略配置为 “强制更新的客户端”。
  • 情况三:服务器未修补,客户端安装了安全更新,并且策略配置为 “缓解”。

解决方案

说明

若仅对客户端本地进行升级操作,请直接执行 方案一:安装安全更新(推荐)

通过 VNC 登录云服务器

  1. 登录 云服务器控制台
  2. 在实例的管理页面,找到目标云服务器实例,单击登录。如下图所示:
    云服务器列表页
  3. 在弹出的 “标准登录 | Windows 实例” 窗口中,选择 VNC登录
  4. 在弹出的登录窗口中,选择左上角的 “发送远程命令”,单击 Ctrl-Alt-Delete 进入系统登录界面。如下图所示:
  5. 输入登录密码,按 Enter,即可登录到 Windows 云服务器。

方案一:安装安全更新(推荐)

安装安全更新,可更新未修补的客户端/服务器端。不同系统对应的更新情况可参见 CVE-2018-0886 | CredSSP 远程执行代码漏洞。本方案以 Windows Server 2016 为例。
其他操作系统可参考以下操作进入 Windows 更新

  • Windows Server 2012: > 控制面板 > 系统和安全 > Windows 更新
  • Windows Server 2008:开始 > 控制面板 > 系统和安全 > Windows Update
  • Windows10: > 设置 > 更新和安全
  • Windows 7: > 控制面板 > 系统和安全 > Windows Update
  1. 在操作系统界面,单击 ,选择设置。如下图所示:
    开始设置
  2. 在打开的 “设置” 窗口中,选择更新和安全。如下图所示:
    更新与安全
  3. 在 “更新和安全” 中,选择 Windows 更新,单击检查更新。如下图所示:
    检查更新
  4. 根据界面提示,单击开始安装
  5. 安装完成后,重启实例,完成更新。

方案二:修改策略配置

在已安装安全更新的机器中,将加密 Oracle 修正策略设置为 “易受攻击” 。本方案以 Windows Server 2016 为例,其操作步骤如下:

注意

Windows 10 家庭版操作系统中,若没有组策略编辑器,可通过修改注册表来实现。操作步骤请参见 方案三:修改注册表

  1. 在操作系统界面,单击 ,输入 gpedit.msc,按 Enter,打开 “本地组策略编辑器”。
    说明

    您也可使用 “Win+R” 快捷键打开运行界面。

  2. 在左侧导航树中,选择计算机配置 > 管理模板 > 系统 > 凭据分配,双击加密 Oracle 修正。如下图所示:
    加密Oracle修正
  3. 在打开的 “加密 Oracle 修正” 窗口中,选择已启用,并将保护级别设置为易受攻击。如下图所示:
    易受攻击
  4. 单击确定,完成设置。

方案三:修改注册表

  1. 在操作系统界面,单击 ,输入 regedit,按 Enter,打开注册表编辑器。
    说明

    您也可使用 “Win+R” 快捷键打开运行界面。

  2. 在左侧导航树中,依次展开计算机 > HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > Policies > System > CredSSP > Parameters 目录。如下图所示:
    说明

    若该目录路径不存在,请手动创建。

  3. 右键单击 Parameters,选择新建 > DWORD(32位)值,并将文件名称命名为 “AllowEncryptionOracle”。
  4. 双击新建的 “AllowEncryptionOracle” 文件,将 “数值数据” 设置为 “2”,单击确定。如下图所示:
    AllowEncryptionOracle
  5. 重启实例。

相关文档

目录