遠程連接Windows實例時出現身份驗證CredSSP錯誤的處理方法


問題描述

通過微軟的RDP協議客戶端,遠程連接Windows實例時,系統提示“出現身份驗證錯誤,要求的函數不受支持(The function requested is not supported)”錯誤。

 

問題原因

微軟官方2018年5月,更新了憑據安全支持提供程序協議(CredSSP)相關補丁和身份驗證請求方式。當遇到如下一種情景時,就會出現該連接錯誤。

  • 情景一:客戶端未更新該補丁,服務器端已更新該補丁且加密Oracle修正的策略為強制更新的客戶端。
  • 情景二:客戶端已更新該補丁且加密Oracle修正的策略為強制更新的客戶端,服務器端未更新該補丁。
  • 情景三:客戶端已更新該補丁且加密Oracle修正的策略為緩解,服務器端未更新該補丁。
    注:
    • 未更新該補丁指沒有更新自2018年5月起至今的任意版本補丁(包括最新版本補丁)。
    • 已更新該補丁指更新過自2018年5月起至今的任意版本補丁或者所有版本補丁(包括最新版本補丁)。
    • 加密Oracle修正的策略步驟為單擊 計算機配置 > 管理模板 > 系統 > 憑據分配 > 加密Oracle修正。更多信息請參考相關文檔步驟。

 

解決方案

阿里雲提醒您:

  • 如果您對實例或數據有修改、變更等風險操作,務必注意實例的容災、容錯能力,確保數據安全。
  • 如果您對實例(包括但不限於ECS、RDS)等進行配置與數據修改,建議提前創建快照或開啟RDS日志備份等功能。
  • 如果您在阿里雲平台授權或者提交過登錄賬號、密碼等安全信息,建議您及時修改。

 

方法一 :服務器端允許任意版本的遠程桌面連接

由於Windows Server系統版本較多,且各版本之間操作略有差異,此處分別以Windows Server 2008 R2、Windows Server 2012 R2和Windows Server 2016三個主流版本為例,步驟如下。

 

Windows Server 2008 R2系統版本

  1. 通過遠程連接登錄Windows實例,打開 開始 ,右鍵單擊 計算機,選擇 屬性。
  2. 在系統控制面板中,單擊 遠程設置,在彈出的 遠程桌面 選項中選擇 允許運行任意版本遠程桌面的計算機連接(較不安全) 並單擊 確定。

 

Windows Server 2012 R2系統版本

  1. 通過遠程連接登錄Windows實例,打開 開始 界面,右鍵單擊 這台電腦,選擇 屬性。
  2. 在系統控制面板中,單擊 遠程設置,在彈出的 遠程桌面 選項中取消選擇 僅允許運行使用網絡級別身份驗證的遠程桌面的計算機連接(建議) 並單擊 確定。

 

Windows Server 2016系統版本

  1. 通過遠程連接登錄Windows實例,打開 開始 界面,單擊 Windows系統,右鍵單擊 此電腦,選擇 更多 > 屬性。
  2. 在系統控制面板中,單擊 遠程設置,在彈出的 遠程桌面 選項中取消選擇 僅允許運行使用網絡級別身份驗證的遠程桌面的計算機連接(建議) 並單擊 確定。

 

方法二 :Windows安全更新

注:

  • 此處以Windows Server 2016系統版本為例,其他Windows系統版本操作類似。
  • 如果您的客戶端是Windows系統,請同樣執行如下操作。
  1. 通過遠程連接登錄Windows實例,搜索並打開 Windows 更新 頁面,單擊 檢查更新 下載更新。
  2. 等待更新下載和安裝。
    提示:如果需要手動安裝CredSSP對應安全更新包,請參考 微軟官網地址進行選擇對應版本的安全更新下載。
  3. 重啟實例或重啟本地計算機以完成安裝更新。

 

方法三:修改注冊表

 

提示:此處以Windows Server 2016系統版本為例,其他Windows系統版本操作類似。

當客戶端或服務器端完成CredSSP相關補丁的更新后,請選擇以下一種方式修改其注冊表。

警告:

  • 如果修改注冊表不當,可能會出現嚴重問題,您需要自行承擔修改注冊表風險。修改注冊表之前,建議您先通過創建快照備份數據,以免數據丟失。
  • 本方法會降低您本地計算機或Windows實例的安全性,我們建議您使用方法二

 

手動修改

  1. 登錄Windows實例或者本地計算機,單擊 開始 > 運行,輸入regedit,單擊 確定。
  2. 單擊 HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > Policies > System > CredSSP > Parameters。
  3. 如果 CredSSP 項或者 Parameters 項不存在,請新建 CredSSP 項或者 Parameters 項,在 Parameters 項下新建 REG_DWORD 類型的 AllowEncryptionOracle 值,並設置數據為2
  4. 重啟實例或重啟本地計算機。

 

腳本修改

  1. 登錄Windows實例或者本地計算機,以管理員身份運行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
  2. 重啟實例或重啟本地計算機。
    注:若您優先使用本方法修改了注冊表,隨后又更新了客戶端和ECS實例安全補丁,我們建議您將 AllowEncryptionOracle的值設為 0或者 1以獲得更高的安全性。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM