CDN加速

1.1 远程桌面连接出现身份验证错误

更新时间:2021-02-22 18:16:06

问题现象

通过微软的RDP协议客户端远程连接Windows实例时报错:“出现身份验证错误,要求的函数不受支持”。如下图所示。
实至名归:网宿科技荣获IDC产业年度大典两项大奖

原因分析

微软官方 2018 年 5 月更新了凭据安全支持提供程序协议(CredSSP)相关补丁和身份验证请求方式。当出现以下任一配置策略时会出现该连接错误。

  • 策略配置一:客户端的策略为未修补,服务器端策略为强制更新的客户端。
  • 策略配置二:客户端策略为强制更新的客户端,服务器端策略为未修补。
  • 策略配置三:客户端的策略为缓解,服务器端策略为未修补。

解决方法一(推荐)

  1. 通过控制台VNC登录Windows实例

  2. 搜索并打开Windows更新设置。
    实至名归:网宿科技荣获IDC产业年度大典两项大奖

  3. 等待下载和安装更新。

  4. 重启实例以完成安装更新。

  5. 若您的客户端也为Windows操作系统,则可在客户端中安装所有积累的安全更新。也可根据自己的操作系统版本在Windows云服务器和客户端上安装CredSSP对应的安全更新安装包。

解决方法二(不推荐)

您可以选择手动修改注册表或者运行下面的PowerShell脚本。但是修改注册表不当可能会出现严重问题,有些问题需重装系统才能解决,因此不推荐此方法。

说明:

  • 当原因为策略配置一时,您需登录并修复目标实例;当原因为策略配置二和三时,您需修复本地计算机。
  • 在修改注册表之前,建议先通过创建快照备份数据,以免数据丢失。

手动修改

  1. 登录云服务器实例或者本地计算机。

  2. 单击开始-运行,输入regedit,单击确定

  3. 定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters 键。如果CredSSP或者Parameters键不存在则请新建。

  4. Parameters 键下新建 DWORD AllowEncryptionOracle,并设置数据值为 2。
    实至名归:网宿科技荣获IDC产业年度大典两项大奖

  5. 重启实例或者本地计算机以完成修改。

脚本修改

  1. 登录实例或者本地计算机。
  2. 以管理员的身份运行以下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
  1. 重启实例或者本地计算机以完成修改。

说明:若您使用方法一修改了注册表后又更新了客户端和云服务器实例安全补丁,我们建议您将 AllowEncryptionOracle 的数据设为 0 或者 1 以获得更高的安全性。