RDP安全协议下SCHANNEL或SSL子项异常导致远程连接“内部错误”

问题现象

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

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

问题原因

此问题可能由于Windows安全协议相关的注册表项缺失或数据损坏导致,RDP握手过程中无法正确建立安全连接。主要涉及以下两个注册表子项:

  • SCHANNEL 配置异常

    SCHANNEL (Secure Channel) 是 Windows 实现 SSL/TLS 安全协议的关键组件。若 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL 子项被删除或损坏,RDP 安全协商将失败。

  • SSL 加密配置异常

    SSL\00010002 子项涉及系统底层的加密配置。若 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002 出现异常,同样会导致“内部错误”。

解决方案

重要

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

解决此问题,需通过VNC登录故障实例,利用从正常机器导出的注册表文件修复故障机器的配置。

步骤一:获取正常注册表文件

准备一台与故障实例系统版本相同(例如同为 Windows Server 2019)且RDP功能正常的Windows实例。

  1. 登录ECS实例。

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

    2. 进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。选择连接方式为终端连接,输入账号和密码,登录图形化终端页面。

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

  3. 分别定位并右键点击以下两个路径,选择导出,保存为.reg文件(例如schannel_fix.regssl_fix.reg):

    • SCHANNEL 路径

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

    • SSL 路径

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002

  4. 将这两个.reg文件从正常实例下载到本地,然后上传至故障ECS实例中。

步骤二:备份并清理故障注册表

由于RDP已不可用,需通过云平台控制台的VNC方式操作。

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

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

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

  2. 右键点击开始菜单,选择运行,输入cmd后按回车,打开命令提示符。执行以下命令删除现有的故障子项(确保环境纯净后再导入):

    :: 删除 SCHANNEL 子项
    reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL /f
    
    :: 删除 SSL 00010002 子项
    reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002 /f

步骤三:导入修复注册表并重启实例

  1. 在故障实例中,找到步骤一中传输过来的schannel_fix.regssl_fix.reg文件。双击这两个文件,并在弹出的确认对话框中点击,将其导入注册表。

  2. 重启实例使配置生效,等待实例启动后,尝试重新使用 RDP 进行远程连接。