이벤트 ID별 Azure VM RDP 연결 문제 해결

이 문서에서는 이벤트 ID를 사용하여 Azure VM(Virtual Machine)에 대한 RDP(원격 데스크톱 프로토콜) 연결을 방지하는 문제를 해결하는 방법을 설명합니다.

증상

RDP(원격 데스크톱 프로토콜) 세션을 사용하여 Azure VM에 연결하려고 합니다. 자격 증명을 입력하면 연결이 실패하고 다음 오류 메시지가 표시됩니다.

이 컴퓨터는 원격 컴퓨터에 연결할 수 없습니다. 문제가 계속되면 원격 컴퓨터의 소유자 또는 네트워크 관리자에게 문의하여 다시 연결해 보세요.

이 문제를 해결하려면 VM에서 이벤트 로그를 검토한 다음 다음 시나리오를 참조하세요.

문제 해결 전

백업 스냅샷 만들기

백업 스냅샷 만들려면 디스크 스냅샷의 단계를 수행합니다.

원격으로 VM에 연결

VM에 원격으로 연결하려면 원격 도구를 사용하여 Azure VM 문제를 해결하는 방법의 방법 중 하나를 사용합니다.

시나리오 1

이벤트 로그

CMD instance 다음 명령을 실행하여 지난 24시간 이내에 이벤트 1058 또는 이벤트 1057이 시스템 로그에 기록되었는지 여부를 검사.

wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Microsoft-Windows-TerminalServices-RemoteConnectionManager'] and EventID=1058 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Microsoft-Windows-TerminalServices-RemoteConnectionManager'] and EventID=1057 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more

로그 이름: 시스템
소스: Microsoft-Windows-TerminalServices-RemoteConnectionManager
날짜:시간
이벤트 ID: 1058
작업 범주: 없음
수준: 오류
키워드: 고전적인
사용자: 해당(N/A)
컴퓨터:컴퓨터
설명: RD 세션 호스트 서버가 TLS 연결에서 RD 세션 호스트 서버 인증에 사용되는 만료된 자체 서명된 인증서를 바꾸지 못했습니다. 관련 상태 코드가 액세스가 거부되었습니다.

로그 이름: 시스템
소스: Microsoft-Windows-TerminalServices-RemoteConnectionManager
날짜:시간
이벤트 ID: 1058
작업 범주: 없음
수준: 오류
키워드: 고전적인
사용자: 해당(N/A)
컴퓨터:컴퓨터
설명: RD 세션 호스트 서버가 TLS 연결에서 RD 세션 호스트 서버 인증에 사용할 새 자체 서명된 인증서를 만들지 못했습니다. 관련 상태 코드가 개체였습니다.

로그 이름: 시스템
소스: Microsoft-Windows-TerminalServices-RemoteConnectionManager
날짜:시간
이벤트 ID: 1057
작업 범주: 없음
수준: 오류
키워드: 고전적인
사용자: 해당(N/A)
컴퓨터:컴퓨터
설명: RD 세션 호스트 서버가 TLS 연결에서 RD 세션 호스트 서버 인증에 사용할 새 자체 서명된 인증서를 만들지 못했습니다. 관련 상태 코드가 키 집합이 없음

또한 다음 명령을 실행하여 SCHANNEL 오류 이벤트 36872 및 36870에 대해 검사 수 있습니다.

wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Schannel'] and EventID=36870 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Schannel'] and EventID=36872 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more

로그 이름: 시스템
소스: 샤넬
날짜:
이벤트 ID: 36870
작업 범주: 없음
수준: 오류
키워드:
사용자: 시스템
컴퓨터:컴퓨터
설명: TLS 서버 자격 증명 프라이빗 키에 액세스하려고 할 때 심각한 오류가 발생했습니다. 암호화 모듈에서 반환된 오류 코드는 0x8009030D.
내부 오류 상태는 10001입니다.

원인

이 문제는 VM의 MachineKeys 폴더에 있는 로컬 RSA 암호화 키에 액세스할 수 없기 때문에 발생합니다. 이 문제는 다음 이유 중 하나로 발생할 수 있습니다.

  1. Machinekeys 폴더 또는 RSA 파일에 대한 잘못된 권한 구성입니다.

  2. RSA 키가 손상되었거나 누락되었습니다.

해결 방법

이 문제를 해결하려면 다음 단계를 사용하여 RDP 인증서에 대한 올바른 권한을 설정해야 합니다.

MachineKeys 폴더에 권한 부여

  1. 다음 콘텐츠를 사용하여 스크립트를 만듭니다.

    remove-module psreadline 
    icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c > c:\temp\BeforeScript_permissions.txt
    takeown /f "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" /a /r
    icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "NT AUTHORITY\System:(F)"
    icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "NT AUTHORITY\NETWORK SERVICE:(R)"
    icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "BUILTIN\Administrators:(F)"
    icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c > c:\temp\AfterScript_permissions.txt
    Restart-Service TermService -Force
    
  2. 이 스크립트를 실행하여 MachineKey 폴더의 권한을 재설정하고 RSA 파일을 기본값으로 다시 설정합니다.

  3. VM에 다시 액세스해 보세요.

스크립트를 실행한 후 권한 문제가 발생하는 다음 파일을 검사 수 있습니다.

  • c:\temp\BeforeScript_permissions.txt
  • c:\temp\AfterScript_permissions.txt

RDP 자체 서명된 인증서 갱신

문제가 지속되면 다음 스크립트를 실행하여 RDP 자체 서명된 인증서가 갱신되었는지 확인합니다.

Import-Module PKI
Set-Location Cert:\LocalMachine
$RdpCertThumbprint = 'Cert:\LocalMachine\Remote Desktop\'+((Get-ChildItem -Path 'Cert:\LocalMachine\Remote Desktop\').thumbprint)
Remove-Item -Path $RdpCertThumbprint
Stop-Service -Name "SessionEnv"
Start-Service -Name "SessionEnv"

인증서를 갱신할 수 없는 경우 다음 단계에 따라 인증서를 삭제합니다.

  1. 동일한 VNET의 다른 VM에서 실행 상자를 열고 mmc를 입력한 다음 확인을 누릅니다.

  2. 파일 메뉴에서 스냅인 추가/제거를 선택합니다.

  3. 사용 가능한 스냅인 목록에서 인증서를 선택한 다음, 추가를 선택합니다.

  4. 컴퓨터 계정을 선택한 다음, 다음을 선택합니다.

  5. 다른 컴퓨터를 선택한 다음 문제가 있는 VM의 IP 주소를 추가합니다.

    참고

    내부 네트워크를 사용하여 가상 IP 주소를 사용하지 않도록 합니다.

  6. 마침을 선택한 다음 확인을 선택합니다.

    컴퓨터 선택 대화 상자의 다른 컴퓨터 옵션 스크린샷

  7. 인증서를 확장하고 원격 데스크톱\인증서 폴더로 이동하여 인증서를 마우스 오른쪽 단추로 클릭한 다음 삭제를 선택합니다.

  8. 원격 데스크톱 구성 서비스를 다시 시작합니다.

    net stop SessionEnv
    net start SessionEnv
    

    참고

    이 시점에서 mmc에서 저장소를 새로 고치면 인증서가 다시 나타납니다.

RDP를 다시 사용하여 VM에 액세스해 보세요.

TLS/SSL 인증서 업데이트

TLS/SSL 인증서를 사용하도록 VM을 설정한 경우 다음 명령을 실행하여 지문을 가져옵니다. 그런 다음 인증서의 지문과 같은지 검사.

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SSLCertificateSHA1Hash

그렇지 않은 경우 지문을 변경합니다.

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SSLCertificateSHA1Hash /t REG_BINARY /d <CERTIFICATE THUMBPRINT>

RDP가 RDP에 대해 자체 서명된 인증서를 사용하도록 키를 삭제할 수도 있습니다.

reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SSLCertificateSHA1Hash

시나리오 2

이벤트 로그

CMD instance 다음 명령을 실행하여 지난 24시간 이내에 SCHANNEL 오류 이벤트 36871이 시스템 로그에 기록되었는지 여부를 검사.

wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Schannel'] and EventID=36871 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more

로그 이름: 시스템
소스: 샤넬
날짜:
이벤트 ID: 36871
작업 범주: 없음
수준: 오류
키워드:
사용자: 시스템
컴퓨터:컴퓨터
설명: TLS 서버 자격 증명을 만드는 동안 심각한 오류가 발생했습니다. 내부 오류 상태는 10013입니다.

원인

이 문제는 보안 정책으로 인해 발생합니다. 이전 버전의 TLS(예: 1.0)를 사용하지 않도록 설정하면 RDP 액세스가 실패합니다.

해결 방법

RDP는 TLS 1.0을 기본 프로토콜로 사용합니다. 그러나 프로토콜은 새 표준인 TLS 1.1로 변경될 수 있습니다.

이 문제를 해결하려면 RDP를 사용하여 Azure VM에 연결할 때 인증 오류 문제 해결을 참조하세요.

시나리오 3

VM에 원격 데스크톱 연결 브로커 역할을 설치한 경우 지난 24시간 이내에 이벤트 2056 또는 이벤트 1296이 있는지 검사. CMD instance 다음 명령을 실행합니다.

wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name=' Microsoft-Windows-TerminalServices-SessionBroker '] and EventID=2056 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name=' Microsoft-Windows-TerminalServices-SessionBroker-Client '] and EventID=1296 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more

로그 이름: Microsoft-Windows-TerminalServices-SessionBroker/Operational
소스: Microsoft-Windows-TerminalServices-SessionBroker
날짜:시간
이벤트 ID: 2056
작업 범주: (109)
수준: 오류
키워드:
사용자: NETWORK SERVICE
Computer:computer fqdn
설명: 원본 Microsoft-Windows-TerminalServices-SessionBroker의 이벤트 ID 2056에 대한 설명을 찾을 수 없습니다. 이 이벤트를 발생시키는 구성 요소가 로컬 컴퓨터에 설치되어 있지 않거나 설치가 손상되었습니다. 로컬 컴퓨터에 구성 요소를 설치하거나 복구할 수 있습니다.
이벤트가 다른 컴퓨터에서 시작된 경우 이벤트와 함께 표시 정보를 저장해야 했습니다.
이벤트에는 다음 정보가 포함되었습니다.
NULL
NULL
데이터베이스에 로그온하지 못했습니다.

로그 이름: Microsoft-Windows-TerminalServices-SessionBroker-Client/Operational
소스: Microsoft-Windows-TerminalServices-SessionBroker-Client
날짜:시간
이벤트 ID: 1296
작업 범주: (104)
수준: 오류
키워드:
사용자: NETWORK SERVICE
Computer:computer fqdn
설명: 원본 Microsoft-Windows-TerminalServices-SessionBroker-Client의 이벤트 ID 1296에 대한 설명을 찾을 수 없습니다. 이 이벤트를 발생시키는 구성 요소가 로컬 컴퓨터에 설치되어 있지 않거나 설치가 손상되었습니다. 로컬 컴퓨터에 구성 요소를 설치하거나 복구할 수 있습니다. 이벤트가 다른 컴퓨터에서 시작된 경우 이벤트와 함께 표시 정보를 저장해야 했습니다. 이벤트에는 다음 정보가 포함되었습니다.
텍스트
텍스트
원격 데스크톱 연결 브로커는 RPC 통신에 사용할 준비가 되지 않았습니다.

원인

이 문제는 원격 데스크톱 연결 브로커 서버의 호스트 이름이 변경되어 지원되는 변경 내용이 아니기 때문에 발생합니다.

호스트 이름에는 Windows 내부 데이터베이스 대한 항목과 종속성이 있습니다. 이 항목은 원격 데스크톱 서비스 팜에서 작동하기 위해 필요합니다. 팜이 이미 빌드된 후 호스트 이름을 변경하면 많은 오류가 발생하고 broker 서버의 작동이 중지될 수 있습니다.

해결 방법

이 문제를 해결하려면 원격 데스크톱 연결 브로커 역할 및 Windows 내부 데이터베이스 다시 설치해야 합니다.

다음 단계

Schannel 이벤트

Schannel SSP 기술 개요

원격 데스크톱 세션 호스트 인증서 & SSL 통신을 사용하여 이벤트 ID 1058 & 이벤트 36870으로 RDP 실패

도메인 컨트롤러의 Schannel 36872 또는 Schannel 36870

이벤트 ID 1058 - 원격 데스크톱 서비스 인증 및 암호화

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.