RDP安全协议协商注册表配置异常导致远程连接“内部错误”

问题现象

在使用远程桌面工具(MSTSC)连接Windows实例时,连接失败并弹窗提示错误:出现了内部错误。

b361e1c3-58eb-4052-8e9b-33b97cdedaba

问题原因

此问题通常由远程计算机的 RDP 注册表配置异常导致,主要涉及安全协议协商或证书指纹不匹配。

  • RDP 安全配置被禁用:注册表项fAllowSecProtocolNegotiation被设置为禁用,导致服务端拒绝与客户端协商安全协议。

  • 加密级别设置不兼容:注册表项MinEncryptionLevel数值设置错误,导致连接加密强度要求无法满足。

  • 证书指纹校验失败:注册表项SSLCertificateSHA1HashValue中记录的证书指纹与系统当前使用的远程桌面证书不一致。

解决方案

重要

此方案需修改系统关键配置,请先为ECS实例手动创建单个快照,以便在出现误操作时快速回滚环境。

我们将通过VNC方式登录实例,检查并修正注册表中RDP相关的关键配置项。

步骤一:定位并修正RDP配置

  1. 通过VNC连接登录ECS实例。

    1. 访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。

    2. 进入目标实例详情页,单击远程连接,选择通过VNC远程连接。输入账号和密码,登录ECS实例。

  2. 右键点击开始菜单,选择运行,输入regedit 并回车,打开注册表编辑器。

  3. 在注册表编辑器中,定位至以下路径:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  4. 在右侧窗口找到并检查以下键值,按需修改:

    • fAllowSecProtocolNegotiation

      • 双击打开,确保数值数据设置为 1

      • 作用:允许安全协议协商。

    • MinEncryptionLevel

      • 双击打开,确保数值数据设置为 3

      • 作用:设置最小加密级别。

    • 验证SSLCertificateSHA1HashValue

      重要

      如果服务器安装了远程桌面连接代理角色,请勿执行此方案,以免影响代理服务功能。

      • 验证方法:右键点击开始菜单,选择运行,输入certlm.msc按回车,找到远程桌面 > 证书,双击证书查看详细信息 > 指纹,检查指纹是否与注册表中的SSLCertificateSHA1HashValue一致。

      • 参数不存在处理策略:忽略此配置。

      • 不一致处理策略:如果注册表中的值与证书指纹不匹配,或无法确定,请直接删除该注册表键值(系统重启后会自动重建或忽略旧值)。

步骤二:重启生效

注册表修改完成后,需重启实例以确保配置生效。等待实例启动完成后,尝试再次使用本地MSTSC客户端连接该实例。