远程连接轻量应用服务器提示“出现身份验证错误,要求的函数不受支持”的错误,如何解决?

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

本文介绍远程连接轻量应用服务器提示“出现身份验证错误,要求的函数不受支持”的问题描述、问题原因及其解决方案。

问题描述

本地电脑使用远程桌面连接工具连接Windows系统的轻量应用服务器时,提示“出现身份验证错误,要求的函数不受支持”。image

问题原因

微软官方于2018年5月,更新了凭据安全支持提供程序协议(CredSSP)相关补丁和身份验证请求方式。默认情况下,如果本地电脑与轻量应用服务器一方未安装此补丁,则可能无法通信。

当遇到以下任一场景时,会出现该连接错误:

说明
  • 未更新该补丁,指没有更新自2018年5月起至今的任意版本补丁,包括最新版本补丁。

  • 已更新该补丁,指更新过自2018年5月起至今的任意版本补丁或者所有版本补丁,包括最新版本补丁。

  • 更多加密数据库修正的策略信息,请参见CVE-2018-0886的CredSSP更新

解决方案

您可以通过允许轻量应用服务器远程桌面连接、安装补丁或者修改注册表的方法,修复该问题。具体方案如下:

方案一:允许轻量应用服务器远程桌面连接

Windows系统版本较多,且各版本之间操作略有差异,此处分别以Windows 2008 R2、Windows 2012 R2和Windows 2016数据中心版为例,操作步骤如下:

Windows 2008 R2

  1. 通过VNC连接轻量应用服务器。

    具体操作,请参见通过VNC远程连接(控制台)

  2. 单击开始,右键单击计算机,然后单击属性win2008开始菜单

  3. 控制面板主页区域,单击远程设置win2008远程设置

  4. 系统属性对话框中,选中允许运行任意版本远程桌面的计算机连接(较不安全),然后单击确定win2008允许

Windows 2012 R2

  1. 通过VNC连接轻量应用服务器。

    具体操作,请参见通过VNC远程连接(控制台)

  2. 单击win2012开始图标图标,右键单击这台电脑,然后单击属性win2012开始

  3. 控制面板主页上,单击远程设置win2012远程设置

  4. 远程页签下,取消选中仅允许运行使用网络级别身份验证的远程桌面的计算机连接(建议) ,然后单击确定win2012取消勾选

Windows 2016数据中心版

  1. 通过VNC连接轻量应用服务器。

    具体操作,请参见通过VNC远程连接(控制台)

  2. 单击Dingtalk_20210510142550.jpg图标,然后单击Windows系统

  3. 右键单击此电脑,然后选择更多 > 属性win2016属性

  4. 控制面板主页上,单击远程设置win2016远程设置

  5. 远程页签下,取消选中仅允许运行使用网络级别身份验证的远程桌面的计算机连接(建议) ,然后单击确定win2016取消勾选

方案二:安装补丁

此处以Windows Server 2016系统版本为例,其他Windows系统版本操作类似。

  1. 通过VNC连接轻量应用服务器。

    具体操作,请参见通过VNC远程连接(控制台)

  2. 单击Dingtalk_20210510142550.jpg图标,单击设置win2016开始

  3. Windows 设置页面,单击更新安全win2016更新与安全

  4. 更新状态页面,单击检查更新,等待更新下载和安装。

    说明

    如果需要手动安装CredSSP对应安全更新包,请访问微软官网,然后下载对应版本的安全更新包。

    win2016检查更新

  5. 在轻量应用服务器中,选择Dingtalk_20210510142550.jpg > 电源管理 > 重启,重启轻量应用服务器更新配置。

    win2016重启服务器

方案三:修改注册表

此处以Windows Server 2016系统版本为例,其他Windows系统版本操作类似。当本地电脑或轻量应用服务器完成CredSSP相关补丁的更新后,请选择以下一种方式修改注册表。

警告

如果修改注册表不当,Windows操作系统可能会出现严重问题,您需要自行承担修改注册表的风险。修改注册表之前,建议您先创建快照备份数据,以免数据丢失。创建快照的具体操作,请参见创建快照

(推荐)使用脚本修改注册表

  1. 通过VNC连接轻量应用服务器。

    具体操作,请参见通过VNC远程连接(控制台)

  2. 打开CMD命令提示行。

    1. 右键单击Dingtalk_20210510142550.jpg图标,然后单击运行win2016运行

    2. 运行对话框中输入cmdwin2016

    3. 单击确定

      进入CMD命令提示行。win2016cmd命令提示行

  3. 执行以下命令,进入PowerShell模式。

    powershell
  4. 执行如下命令,以管理员身份运行Windows PowerShell脚本。

    New-Item -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System -Name CredSSP -Force
    New-Item -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP -Name Parameters -Force
    Get-Item -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters | New-ItemProperty -Name AllowEncryptionOracle -Value 2 -PropertyType DWORD -Force
  5. 在轻量应用服务器中,选择Dingtalk_20210510142550.jpg > 电源管理 > 重启,重启轻量应用服务器更新配置。

    说明

    若您先使用本方法修改了注册表,随后又更新了本地电脑和轻量应用服务器的安全补丁,建议您将AllowEncryptionOracle数值数据设为0或者1以获得更高的安全性。AllowEncryptionOracle数值数据信息,请参见CVE-2018-0886的CredSSP更新

    win2016重启服务器

手动修改注册表

  1. 通过VNC连接轻量应用服务器。

    具体操作,请参见通过VNC远程连接(控制台)

  2. 打开注册表编辑器。

    1. 右键单击Dingtalk_20210510142550.jpg图标,然后单击运行win2016运行

    2. 运行对话框中输入regeditwin2016运行窗口

    3. 单击确定

      进入注册表编辑器。 win2016注册表编辑器

  3. 注册表编辑器页面的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters路径下,将注册表项AllowEncryptionOracle数值数据设置为2

    说明

    注册表项AllowEncryptionOracle数值数据信息,请参见CVE-2018-0886的CredSSP更新

    如果CredSSP项或Parameters项不存在,请新建对应注册表项,然后在该注册表项下新建REG_DWORD类型的注册表项AllowEncryptionOracle。以CredSSP项和Parameters均不存在为例,操作如下:

    1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System路径下新建CredSSP项。

      1. 右键单击注册表项空表区域,然后选择新建(N) > 项(K)win2016新建项

      2. 输入CredSSP,按Enter键。

        新建项

    2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP路径下新建Parameters项。Parameters项

    3. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters路径下新建AllowEncryptionOracle项。新建字符串

    4. 修改注册表项AllowEncryptionOracle数值数据

      1. 右键单击注册表项AllowEncryptionOracle,然后单击修改(M)修改注册表项

      2. 在对话框中,将数值数据设置为2,然后单击确定修改数据数值

  4. 在轻量应用服务器中,选择Dingtalk_20210510142550.jpg > 电源管理 > 重启,重启轻量应用服务器更新配置。

    win2016重启服务器

相关文档

CVE-2018-0886 | CredSSP 远程执行代码漏洞