如何對使用 RDP 連線至 EC2 Windows 執行個體時的驗證錯誤進行疑難排解?
我使用遠端桌面協定 (RDP) 嘗試登入 Amazon Elastic Compute Cloud (Amazon EC2) Windows 執行個體時,收到身份驗證錯誤。
解決方法
當您使用 RDP 登入 Amazon EC2 Windows 執行個體時,可能會收到下列身分驗證錯誤:
- 「發生驗證錯誤。無法聯絡本地安全機構。」
- 「您嘗試連接的遠端電腦需要網路層級身分驗證 (NLA),但無法聯絡您的 Windows 網域控制器來執行 NLA。如果您是遠端電腦的系統管理員,則可以使用『系統屬性』對話方塊的『遠端』標籤上的選項來停用 NLA。」
下列情況下可能會發生這些錯誤:
- 伺服器的網路層驗證 (NLA) 已開啟。
- 在 RDP 登入時,您的網域與加入此網域的 EC2 執行個體之間的信任關係失敗。
已為伺服器開啟 NLA
當執行個體與網域控制器的連線中斷時,就會發生 NLA 錯誤,因為網域憑證未經驗證。若要解決此問題,請使用 AWS Systems Manager AWSSupport-TroubleshootRDP 自動化文件來修改執行個體設定或停用執行個體上的 NLA。
AWSSupport-TroubleshootRDP 自動化文件可讓您修改影響 RDP 連線的執行個體上的常用設定。
使用下列其中一種方法來停用無法連線的執行個體上的 NLA:
- 設定 AWS Systems Manager Session Manager。
- 執行 AWS-RunPowerShellScript 命令文件。.
- 手動離線變更登錄檔。
**注意:**變更 NLA 時,必須變更登錄檔。在開始之前,請先從您的執行個體建立 Amazon Machine Image (AMI)。這會在您變更登錄檔之前建立備份。
使用 Systems Manager Session Manager 停用 NLA
若要使用 Session Manager 停用 NLA,請完成下列步驟來新增登錄機碼:
重要: 執行個體必須已安裝 Systems Manager Agent (SSM Agent) ,且必須處於線上狀態。執行個體還必須具有 AWS Identity and Access Management (IAM) 角色,以授予 Session Manager 許可。如需詳細資訊,請參閱 Session Manager 先決條件。
- 開啟 Systems Manager 主控台。
- 在導覽窗格中,選擇 Fleet Manager。
- 選擇您要連線的受管執行個體。
- 在節點動作功能表中,依次選擇啟動終端工作階段和連線。您已使用 Session Manager 連線至執行個體。
- 在終端工作階段中執行下列命令:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0 /f reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v fAllowSecProtocolNegotiation /t REG_DWORD /d 0 /f
使用 AWS-RunPowerShellScript 命令文件停用 NLA
若要使用 AWS:RunPowerShellScript 命令文件停用 NLA,請完成下列步驟以新增登錄機碼:
**重要:**執行個體必須已安裝 SSM Agent,且必須處於線上狀態。執行個體還必須具有可授予 Session Manager 許可的 IAM 角色。如需詳細資訊,請參閱 Session Manager 先決條件。
-
在導覽窗格中,選擇執行命令,然後選擇執行命令。
-
對於命令文件,選取 AWS-RunPowerShellScript。
-
對於命令參數,輸入下列命令:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0 /f reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v fAllowSecProtocolNegotiation /t REG_DWORD /d 0 /f
-
對於目標選擇,選擇手動選擇執行個體,然後選取您的執行個體。
-
選擇執行。
-
等到整體狀態變更為成功。兩分鐘後重新整理頁面。
-
重新啟動執行個體。
-
使用 RDP 登入執行個體。
手動離線變更登錄
-
在與您所停止無法存取的執行個體相同的可用區域中啟動新執行個體。新的執行個體會變成您的救援執行個體。
**重要:**最佳實務是啟動與無法存取的執行個體不同的 Windows 執行個體,以避免磁碟簽章問題。
-
將分離的磁碟區作為 /dev/xvdf 連接至救援執行個體。
-
使用 RDP 連線至救援執行個體,然後在磁碟管理員中將剛連接的磁碟區上線。
-
在命令提示字元中,輸入 ** regedit.exe**,然後按 Enter 鍵開啟登錄編輯器。
-
選擇 HKEY_LOCAL_MACHINE,然後選取檔案、載入 Hive。
-
導覽至連接的磁碟區上的 Windows 資料夾,然後選取 SYSTEM 檔案。預設路徑為 D:\Windows\System32\config。
-
命名 SYSTEM 檔案。例如 badsys。
-
此時,badsys 系統檔案會出現在 HKEY_LOCAL_MACHINE 下。在 badsys 下,導覽至 ControlSet001、Control、Terminal Server、WinStations、RDP-Tcp。
-
連按兩下 SecurityLayer,並將其值資料設定為 **0。**選取 UserAuthentication,並將其值資料設定為 0。然後,選取 AllowSecProtocolNegotiation,並將其值資料設為 0。
-
向上捲動並選取 badsys、檔案、卸載 Hive。
-
在 Hive 卸載後,開啟磁碟管理員並使磁碟離線。
-
從救援執行個體分離磁碟區,並將其作為根磁碟區 (/dev/sda1) 連接至無法存取的執行個體。
-
啟動執行個體並測試 RDP。
在 RDP 登入期間,您的網域與加入此網域的 EC2 執行個體之間的信任關係失敗
使用快取的使用者憑證登入無法存取的執行個體。
先決條件
-
可成功向 EC2 執行個體驗證的本機帳戶。
-
(選用) 在執行個體與網域控制器通訊時,至少有一個登入的網域帳戶。若要讓網域帳戶運作,必須在伺服器中快取網域帳戶憑證。
**注意:**最佳實務是使用本機帳戶。
-
如果網域控制器無法使用,請確認先前要快取的登入次數至少設定為 1。必須這樣做才能使用互動式登入。政策可以設定為預設值 10。依預設,政策未定義,而且您可以使用伺服器的本機政策。
若要使用快取的使用者認證登入,請完成下列步驟:
- 開啟 EC2 主控台,然後選取安全群組。
- 在導覽窗格中,選擇安全群組。
- 選擇建立安全群組。
- 新增安全群組名稱和描述。
- 在傳入規則下,選擇新增規則。
- 對於類型,選擇 RDP。然後,為您要使用 RDP 連接的來源提供資訊。
- 在傳出規則下,移除所有傳出存取。
- 選擇建立安全群組。
- 在導覽窗格中,選擇「執行個體」,然後選取無法存取的執行個體。
- 依次選擇動作、安全和變更安全群組。移除所有現有的安全群組,然後指派您剛建立的安全群組。
- 使用常規網域帳戶以使用 RDP 連線至 EC2 執行個體。由於所有傳出存取都已從 Amazon EC2 中移除,因此 RDP 使用儲存在伺服器上的快取憑證。
**注意:**最初會嘗試對網域控制器進行驗證。但由於沒有來自 Amazon EC2 的傳出存取,因此身分驗證最終會檢查儲存在伺服器上的快取憑證。使用快取的憑證重新嘗試身分驗證,且登入成功。登入之後,您可以將安全群組設定變更回原始狀態,然後繼續解決網域的任何問題。
其他疑難排解
如果仍然無法連線至執行個體,請參閱如何解決與 Amazon EC2 Windows 執行個體的遠端桌面連線問題?
相關資訊
相關內容
- 已提問 2 年前lg...
- 已提問 1 年前lg...
- 已提問 2 個月前lg...
- 已提問 9 個月前lg...
- 已提問 1 年前lg...
- AWS 官方已更新 2 年前
- AWS 官方已更新 3 年前
- AWS 官方已更新 1 年前