일반적인 문제와 해결 단계.
자동 로그인이 작동하지 않음
스마트 카드 서비스가 실행되고 있지 않음
Teleport UI에서 Windows 호스트에 연결하고 Windows 로그인 화면에 도착했지만 아무 일도 일어나지 않습니다.
사용자 이름을 클릭하고 로그인 옵션
을 클릭한 다음 스마트 카드 아이콘을 클릭할 수 있습니다. 오류 메시지는 **"이 스마트 카드에서 유효한 인증서가 발견되지 않았습니다"**입니다.
해결책: 스마트 카드 서비스 활성화
보통 이는 대상 호스트에서 스마트 카드 서비스가 실행되고 있지 않음을 의미합니다.
먼저, 그룹 정책에서 스마트 카드 서비스를 활성화했는지 확인하십시오.
그렇지 않으면, 대상 호스트에 직접 로그인하고 "시작" 메뉴에서 "서비스" 프로그램을 열어 "스마트 카드" 서비스가 "실행 중" 상태인지 확인하십시오.
"스마트 카드" 서비스가 실행되고 있지 않으면, PowerShell을 열고 gpupdate.exe /force
를 실행하십시오. 이것은 그룹 정책 동기화를 강제하며 서비스 변경 사항을 반영하도록 합니다.
스마트 카드 PIN이 감지되지 않음
Teleport는 각 새 데스크탑 세션에 대한 스마트 카드 PIN을 생성하기 위해 암호학적으로 안전한 난수 생성기를 사용합니다. 스마트 카드 인증서를 초기 로그인 외의 다른 목적으로 사용하지 않도록 하기 위해 이 PIN은 Teleport 사용자와 공유되지 않습니다.
Teleport는 RDP 연결 단계 동안 이 PIN을 데스크탑에 제공합니다. 그룹 정책이 데스크탑에서 이 PIN을 볼 수 없도록 설정되어 있다면, 사용자는 스마트 카드가 감지되었음에도 불구하고 로그인 화면에 머무르게 됩니다.
해결책: 그룹 정책이 RDP 연결 수립 중 자격 증명을 지정하도록 허용하는지 확인하십시오.
컴퓨터 구성, 관리 템플릿, Windows 구성요소, 원격 데스크톱 서비스 및 원격 데스크톱 세션 호스트를 확장하십시오.
원격 데스크톱 세션 호스트 아래에서 보안을 선택하십시오.
연결 시 항상 암호 요청을 마우스 오른쪽 버튼으로 클릭하고 편집을 선택한 다음 사용 안 함을 선택하고 확인을 클릭하십시오.
참고: 이 정책의 이름에 비밀번호가 언급되어 있음에도 불구하고 웹을 통해 비밀번호가 전송되지는 않습니다. 이 메커니즘은 스마트 카드 PIN 전송에만 사용됩니다.
서드파티 스마트 카드 드라이버가 자동 로그인을 방해함
HID ActivID ActivClient와 같은 일부 서드파티 스마트 카드 드라이버는 자동 로그인 프로세스가 올바르게 작동하는 것을 방해할 수 있습니다. 서드파티 드라이버의 존재를 확인하려면 자동 로그인이 작동하지 않는 호스트에 연결하고
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais\SmartCards\Identity Device (NIST SP 800-73 [PIV])
항목의 내용을 확인하십시오.
올바로 구성된 시스템에서는 기본 Windows 드라이버를 가리키는 DLL 엔트리를 볼 수 있게 됩니다: C:\Windows\System32\msclmd.dll
. 사용자 정의 드라이버가 설치된 시스템에서는 일반적으로 이 경로가 C:\Program Files
아래의 DLL을 가리키도록 오버라이드됩니다.
해결책: 로그인 프로세스를 방해할 수 있는 서드파티 스마트 카드 도구를 비활성화하거나 제거하십시오. 제거를 완료한 후 위에서 언급한 레지스트리 엔트리가 msclmd.dll
을 가리키고 있는지 확인하십시오.
계정에 대해 지원되지 않는 스마트 카드
Windows 호스트에 연결하고 다음과 같은 오류 메시지를 받습니다: "스마트 카드로 서명하는 것이 귀하의 계정에 대해 지원되지 않습니다." 또는 유사한 메시지.
해결책: Windows 호스트에서 Security-Kerberos 로그를 검토하여 원인을 확인하십시오.
Security-Kerberos Windows 이벤트 로그는 스마트 카드 기반 인증 시도의 정보를 제공합니다. 이 이벤트 로그는 기본적으로 활성화되어 있지 않습니다. Windows 이벤트 로그를 열고 이벤트 뷰어에서 응용 프로그램 및 서비스 로그, Microsoft, Windows, Security-Kerberos, 운영을 탐색하십시오. 이 이벤트 로그를 활성화한 다음 Teleport 웹 UI를 통해 연결을 시도하여 로그 항목을 검토하십시오.
신뢰되지 않은 스마트 카드 인증서
Teleport UI에서 Windows 호스트에 연결하고 Windows 로그인 화면에 도착했으며 오류 메시지를 봅니다: "인증에 사용된 스마트 카드 인증서가 신뢰되지 않았습니다" (또는 유사한 메시지).
해결책: Teleport CA 가져오기
이는 호스트가 Teleport CA를 신뢰하지 않음을 의미합니다.
먼저, 그룹 정책에 Teleport CA를 가져왔는지 확인하십시오. 마지막 가져온 이후 Teleport CA를 교체한 경우, 다음 명령을 사용하여 새로운 CA를 가져와야 합니다. teleport.example.com 부분을 Teleport 클러스터의 주소로 교체하십시오:
curl.exe -fo user-ca.cer https://teleport.example.com/webapi/auth/export?type=windows
그것도 도움이 되지 않으면, 대상 호스트에 직접 로그인하고 PowerShell을 열어 gpupdate.exe /force
를 실행하십시오. 이것은 그룹 정책 업데이트를 강제하며 새로운 CA를 가져올 수 있게 됩니다.
새로운 세션이 "멈춤"
호스트에 접근할 수 없음
Teleport 웹 UI에서 Windows 호스트의 연결을 클릭하면 새 탭이 열리지만 상단 바 외에는 아무것도 표시되지 않습니다. 잠시 후 연결 실패에 대한 오류가 표시됩니다.
대부분의 경우, 이 오류는 windows_desktop_service
가 대상 Windows 호스트에 접근할 수 없을 때 발생합니다.
해결책: 방화벽 규칙을 수정하여 RDP 트래픽을 허용합니다.
먼저 RDP 포트를 열고, 원격 데스크톱 연결을 허용하는지 확인하십시오.
그렇지 않으면, 대상 호스트가 온라인인지 확인하고 ping
명령을 사용해 Linux 서버에서 해당 호스트에 접근을 시도하십시오. 호스트가 온라인 상태이지만 접근할 수 없는 경우, 인프라와 관련된 다른 네트워킹 장벽이 있을 수 있습니다.
호스트명이 해석되지 않음
Windows 데스크탑으로의 연결이 수립되는 동안 멈추거나 Teleport 디버그 로그에 winserver.example.com
을 해결할 수 없다는 오류가 표시됩니다.
해결책: 방화벽이 DNS 트래픽을 허용하는지 확인하십시오.
LDAP를 통해 자동으로 발견되는 데스크탑의 경우, Teleport는 LDAP 서버에 대해 DNS 쿼리를 수행하여 호스트명을 IP 주소로 해결합니다.
방화벽이 Teleport의 Windows 데스크탑 서비스가 LDAP 서버(Active Directory 도메인 컨트롤러)로부터 포트 53
으로 인바운드 DNS 트래픽을 허용하는지 확인하십시오.
Teleport 시작 실패
잘못된 도메인
Teleport가 다음과 유사한 오류와 함께 시작되지 않습니다:
LDAP Result Code 10 "Referral": 0000202B: RefErr: DSID-0310082F, data 0, 1 access points
"\tref 1: 'xample.com'"
"\x00"
해결책: 도메인 수정
이는 도메인 이름이 잘못되었을 가능성이 높습니다. windows_desktop_service
의 ldap
섹션에 있는 domain
필드를 다시 확인하십시오.
도메인 컨트롤러에 접근할 수 없음
Teleport가 다음과 유사한 오류와 함께 시작되지 않습니다:
LDAP Result Code 200 "Network Error": dial tcp ad.example.com:636: i/o timeout
해결책: LDAP 주소 확인
이는 도메인 컨트롤러가 다운되었거나 접근할 수 없음을 의미합니다. windows_desktop_service
의 ldap
섹션에 있는 addr
필드를 다시 확인하십시오. 올바른 경우, 도메인 컨트롤러가 작동 중이며 windows_desktop_service
를 실행하는 서버에서 접근할 수 있는지 확인하십시오.
TLS를 통한 LDAP 초기화 불가
Teleport가 시작 시 LDAP에 연결하지 못합니다. 다음과 유사한 오류를 볼 수 있습니다:
LDAP Result Code 52 "Unavailable": 00000000: LdapErr: DSID-0C090F78, comment: Error initializing SSL/TLS, data 0, v2580\x00
또는
LDAP 서버에 연결 중: LDAP 응답 패킷을 읽을 수 없음: read tcp 172.18.0.5:35970->;172.18.0.4:636: 읽기: 피어에 의해 연결이 재설정됨
해결책: LDAPS 활성화
이는 LDAP 서버에 LDAP 인증서가 설치되어 있지 않거나 포트 389
에서 불안전한 연결을 시도하고 있음을 의미합니다. Teleport는 보안 LDAPS 연결을 요구하며 일반적으로 포트 636
에서 실행됩니다. 올바른 LDAPS 포트에 연결하고 있는지 확인하십시오. 문제가 해결되지 않으면,
Active Directory 인증서 서비스 설치 (AD CS) 또는
자체 서드파티 인증서 가져오기 를 수행하십시오. Active Directory는 매우 까다롭기 때문에 인증서를 올바르게 생성해야 합니다.
LDAP를 통한 데스크탑 발견되지 않음
LDAP이 아직 초기화되지 않음
Teleport는 실행되고 있지만 데스크탑이 웹 UI에 나타나지 않습니다. 로그에는 다음과 유사한 오류가 포함되어 있습니다:
데스크탑 발견 건너뜀: LDAP이 아직 초기화되지 않음
해결책: Teleport 인증서가 설치되었는지 확인
Teleport Desktop Service는 LDAP 서버와 인증하기 위해 Teleport가 발급한 인증서를 사용합니다. 이 오류는 Teleport가 인증할 수 없을 때 발생하며, 이는 종종 Active Directory에서 인증서 권한이 신뢰되지 않을 때 나타납니다.
먼저, Teleport CA가 LDAP NTAuth 저장소에 있는지 확인하십시오. 다음 명령을 실행하되, 도메인에 맞게 DN을 수정하십시오 (이 명령에서는 example.com 도메인을 사용합니다):
$ certutil -viewstore "ldap:///CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=example,DC=com?caCertificate"
Teleport CA 인증서를 보여주는 팝업 창이 표시되어야 합니다. Teleport 인증서가 존재하지 않으면 다음 명령으로 가져올 수 있습니다:
$ certutil -dspublish -f <path-to-cert> NTAuthCA
LDAP에 Teleport 인증서가 존재하는지 확인한 후 모든 데스크탑에 전파되었는지 확인하십시오. 연결하고자 하는 데스크탑에서 다음을 실행하십시오:
$ certutil -viewstore -enterprise NTAuth
팝업 창에 Teleport 인증서가 표시되지 않으면 LDAP에 있었다면 데스크탑이 다음 명령어를 통해 동기화되도록 강제할 수 있습니다:
$ certutil -pulse
Teleport CA 인증서가 올바르게 설치되었음을 확인했으나 여전히 이 오류가 발생하면 mTLS 연결을 방해할 수 있는 보안 도구나 애드온이 있는지 확인하십시오. CrowdStrike의 LDAP 검사기나 Silverfort의 AD 어댑터와 같은 도구는 TLS를 종료하고 클라이언트 인증서를 제거하기 때문에 Teleport의 인증을 방해할 수 있습니다.
클라이언트 인증서 수동 검증
다른 유용한 문제 해결 단계는 tctl
을 사용하여 클라이언트 인증서를 발급하고 Windows 측에서 이를 검증하는 것입니다.
먼저, tctl
로 클라이언트 인증서를 생성하십시오. 이때 --windows-user
, --windows-sid
, --windows-domain
플래그에 다음과 같은 환경에 적합한 값을 넣으십시오:
주의: Windows 인증서를 발급하려면 'tctl auth sign'을 Teleport auth_service가 실행 중인 동일 머신에서 로컬로 실행해야 합니다. 'tsh'로 발급된 신원을 사용해 원격으로 이 명령을 실행하면 'ERROR: access denied'가 발생합니다.
tctl auth sign \ --windows-user=svc-teleport \ --windows-sid=S-1-5-21-3788279871-1068139173-3054872986-500 \ --windows-domain=domain.example.com \ --format=windows \ --out=test
이 명령은 test.svc-teleport.der
라는 이름의 인증서 파일을 생성합니다.
그 다음, 이 인증서를 도메인 컨트롤러 중 하나로 복사하고 검증해 보십시오:
$ certutil -urlfetch -verify test.svc-teleport.der
성공적인 검증은 다음과 유사한 출력으로 끝나야 합니다:
------------------------------------
검증된 응용 프로그램 정책:
1.3.6.1.5.5.7.3.2 클라이언트 인증
1.3.6.1.4.1.311.20.2.2 스마트 카드 로그온
인증서는 최종 사용자 인증서입니다.
최종 인증서 폐기 확인에 성공했습니다.
CertUtil: -verify 명령이 성공적으로 완료되었습니다.
유사한 결과를 보지 못한다면 인증서가 검증되지 않는 이유를 나타내는 오류가 있는지 출력을 스캔해 보십시오.
연결 시도가 실패함
RDP 서버가 표준 RDP 보안만 사용함
데스크탑 연결 시도가 다음과 유사한 오류와 함께 실패합니다:
클라이언트가 SSL을 광고했지만 서버는 STANDARD_RDP_SECURITY를 선택했습니다.
해결책: 향상된 RDP 보안 활성화
표준 RDP 보안은 RC4 암호화를 기반으로 하며 RDP를 통해 Windows 호스트에 연결하는 가장 안전하지 않은 방법입니다. Teleport의 RDP 클라이언트는 TLS가 포함된 향상된 RDP 보안을 요구합니다.
향상된 RDP 보안은 일반적으로 기본적으로 활성화되어 있지만, 환경에 따라 레거시 보안 방법을 요구하도록 구성되었을 수 있습니다.
이 구성은 그룹 정책을 통해 다음 위치에서 설정할 수 있습니다:
컴퓨터 구성 > 관리 템플릿 > Windows 구성 요소 > 원격 데스크톱 서비스 > 원격 데스크톱 세션 호스트 > 보안
"원격(RDP) 연결을 위한 특정 보안 계층의 사용 요구" 설정을 찾아야 합니다. 이 설정은 협상 또는 SSL로 설정되어 있어야 하며 RDP로 설정되어서는 안 됩니다.
RDP 연결 실패
Teleport 웹 UI에서 Windows 호스트의 연결을 클릭하면 새 탭이 열리지만 상단 바 외에는 아무것도 표시되지 않습니다. 오류가 표시되며 RDP 연결 실패를 언급합니다. 다음과 유사한 오류도 볼 수 있습니다:
Rdp(Io(Os { code: 54, kind: ConnectionReset, message: "Connection reset by peer" }))
해결책: RDP 연결을 위한 인증서 구성
이는 데스크탑이 TLS 연결을 위한 안전한 암호 스위트를 지원하지 않음을 의미합니다.
RDP 연결을 위한 인증서를 구성해야 하는지 확인하십시오.
만료된 스마트 카드 인증서
로그인 화면에 다음과 유사한 오류가 표시됩니다:
인증에 사용된 스마트 카드 인증서가 만료되었습니다. 시스템 관리자에게 문의하십시오.
해결책: 시스템 시계 확인
Teleport의 스마트 카드 인증서는 짧은 기간(약 5분) 동안만 유효합니다. Teleport 인증 서버와 대상 Windows 호스트의 시스템 시계가 현재 시간에 대해 차이를 보인다면, 시스템은 인증 시도를 거부할 수 있습니다.
CredSSP와 함께 향상된 RDP 보안 요구
데스크탑 연결 시도가 실패하고 로그에 다음과 유사한 오류가 표시됩니다:
협상 단계 중 오류: 서버가 클라이언트가 CredSSP로 향상된 RDP 보안을 지원하기를 요구합니다.
해결책: 네트워크 수준 인증(NLA) 비활성화
이는 RDP 서버가 NLA를 요구하고 있음을 의미합니다. 이 오류를 수정하려면 서버를 구성하여 NLA를 요구하지 않도록 하거나, Teleport 16.2.0 이상을 실행하고 있다면 NLA를 활성화할 수 있습니다.
서버에서 NLA를 요구하지 않도록 구성하려면, Teleport 연결을 위해 구성한 그룹 정책 개체에서 원격 데스크톱 연결을 허용하는 방법 지침을 따라야 합니다. Active Directory에서 NLA를 비활성화한 후에도 여전히 이 오류가 발생하면, 다음 명령을 관리자로 Windows 명령 프롬프트에서 실행하여 정책 업데이트를 강제할 수 있습니다:
gpupdate.exe /force
Teleport 16.2.0 및 이후 버전에서 NLA를 활성화하려면, Teleport의 windows_desktop_service
를 실행하는 호스트에서 TELEPORT_ENABLE_RDP_NLA
환경 변수를 yes
로 설정해야 합니다. Teleport의 NLA 지원에 대한 자세한 내용은 Active Directory 가이드를 참조하십시오.
CredSSP: Kerberos 데이터베이스에 서버가 없음
데스크탑 연결 시도가 실패하고 UI에 다음과 유사한 오류가 표시됩니다:
CredSSP UnknownCredentials: Kerberos 데이터베이스에 서버가 없습니다.
이는 NLA와 관련된 오류입니다. NLA를 사용하여 Windows 호스트에 연결하기 위해서는 Teleport가 Active Directory에 존재하는 컴퓨터 이름을 지정해야 합니다. 올바른 컴퓨터 이름을 지정하지 않았거나 IP 주소로 연결하는 경우 이 오류가 표시됩니다.
해결책: 서버의 컴퓨터 이름 수정
이 오류를 수정하려면 다음 중 하나를 수행하십시오:
- 서버의 컴퓨터 이름이
teleport.dev/computer_name
레이블에 지정되어 있는지 확인하십시오. - 서버의
addr
필드가 올바른 컴퓨터 이름을 지정하고 있는지 확인하십시오.
자세한 내용은 컴퓨터 이름을 참조하십시오.
디렉토리 공유
디렉토리 공유 실패
디렉토리 공유 시도가 실패하고 다음과 같은 경고가 표시됩니다:
디렉토리 공유 실패, RDP 서버에서 드라이브 리디렉션이 비활성화되어 있을 수 있습니다.
해결책: 장치 리디렉션이 활성화되어 있는지 확인하십시오.
Teleport의 디렉토리 공유 기능은 RDP 장치 리디렉션을 활용합니다. 장치 리디렉션이 활성화되지 않거나 RDP 서버에서 허용되지 않는 경우 작업이 실패합니다.
장치 리디렉션은 기본적으로 활성화되어 있지만 그룹 정책에서 비활성화될 수 있습니다. 관련 설정은 다음 위치에 있습니다:
컴퓨터 구성 > 관리 템플릿 > Windows 구성 요소 > 원격 데스크톱 서비스 > 원격 데스크톱 세션 호스트 > 장치 및 리소스 리디렉션
드라이브 리디렉션을 허용하지 않음 옵션이 해제되거나 비활성화되어 있는지 확인하십시오.