InfoGrab Docs

Teleport와 PuTTY 및 WinSCP 사용

요약

이 가이드는 Teleport 클라이언트 도구 tsh를 사용하여 PuTTY와 함께 사용할 저장된 세션을 추가하는 방법과 PuTTY를 클라이언트로 사용하여 SSH 노드에 연결하는 방법을 보여줍니다. 또한 이러한 저장된 세션을 WinSCP와 함께 선택적으로 사용하여 SFTP로 SSH 노드에서 파일을 전송하는 방법도 보여줍니다.

이 가이드는 Teleport 클라이언트 도구 tsh를 사용하여 PuTTY와 함께 사용할 저장된 세션을 추가하는 방법과 PuTTY를 클라이언트로 사용하여 SSH 노드에 연결하는 방법을 보여줍니다.

또한 이러한 저장된 세션을 WinSCP와 함께 선택적으로 사용하여 SFTP로 SSH 노드에서 파일을 전송하는 방법도 보여줍니다.

다음 내용을 배울 수 있습니다:

  • Teleport 클러스터에 연결된 SSH 노드에 대한 저장된 PuTTY 세션 생성.
  • 저장된 PuTTY 세션을 사용하여 대화형 셸에 로그인.
  • (선택 사항) 저장된 PuTTY 세션을 WinSCP로 가져와 SSH 노드에서 파일을 전송하는 SFTP 세션 시작.

사전 요구 사항#

  • Windows 10 이상이 실행되는 클라이언트 머신. tsh를 사용하여 PuTTY 세션을 저장하는 것은 Windows에서만 가능합니다.

  • Teleport tsh.exe 클라이언트. tsh.exe 클라이언트를 다운로드하려면 다음 명령을 실행하세요:

    $ curl.exe -O https://cdn.teleport.dev/teleport-v(=teleport.version=)-windows-amd64-bin.zip
    

    그런 다음 아카이브의 압축을 풀고 tsh.exe%PATH%로 이동하세요.

    Note

tsh.exeSystem32 디렉터리에 배치하지 마세요. WinSCP를 사용할 때 문제가 발생할 수 있습니다. 이미 %PATH%에 포함되어 있는 %SystemRoot%(예: C:\Windows)를 대신 사용하세요.

사용 중인 Windows 시스템에 관리자 권한이 없는 경우 대신 `%USERPROFILE%`
(예: `C:\Users\<username>`)를 사용할 수 있지만, `tsh.exe`와 동일한 디렉터리에 있지 않으면
명령줄에서 전역으로 `tsh` 명령을 실행할 수 없습니다.

요약#

PuTTY에 저장된 세션을 추가하려면:

  1. tsh login 명령을 사용하여 Teleport 클러스터에 로그인하세요:
$ tsh login --proxy=teleport.example.com

이 명령은 사용자 인증서를 검색하고 %USERPROFILE%/.tsh 디렉터리의 로컬 파일에 저장합니다.

  1. 클러스터 내에서 사용자가 연결할 수 있는 SSH 노드를 나열하세요:
$ tsh ls
Node Name                           Address        Labels
----------------------------------- -------------- ----------------------------
ip-172-31-30-140                    127.0.0.1:3022 company=acmecorp,env=aws,...
ip-172-31-34-128.us-east-2.compu... ⟵ Tunnel      access=open,enhanced_reco...
ip-172-31-8-63                      172.31.8.63:22 type=openssh
  1. 특정 노드의 특정 로그인에 대한 저장된 세션을 Windows 레지스트리에 추가하세요.

예를 들어, 노드 ip-172-31-30-140에서 ubuntu 로그인에 대한 저장된 세션을 Windows 레지스트리에 추가하려면 다음 명령을 실행하세요:

$ tsh puttyconfig ubuntu@ip-172-31-30-140
Added PuTTY session for ubuntu@ip-172-31-30-140 [proxy:teleport.example.com]

이 명령에 로그인을 제공하지 않으면 로컬 Windows 사용자명이 대신 사용됩니다.

클러스터 내에 등록된 OpenSSH 노드(teleport join openssh로 추가된)에 대한 세션을 추가하는 경우, tsh puttyconfig로 세션을 추가할 때 sshd 포트(보통 22)를 지정해야 합니다:

$ tsh puttyconfig --port 22 ubuntu@ip-172-31-8-63
Added PuTTY session for ubuntu@ip-172-31-8-63 [proxy:teleport.example.com]

원한다면 tsh puttyconfig user@host:22를 사용할 수도 있습니다.

  1. tsh login 명령을 사용하여 Teleport 클러스터에 로그인하세요:
$ tsh login --proxy=mytenant.teleport.sh

이 명령은 사용자 인증서를 검색하고 %USERPROFILE%/.tsh 디렉터리의 로컬 파일에 저장합니다.

  1. 클러스터 내에서 사용자가 연결할 수 있는 SSH 노드를 나열하세요:
$ tsh ls
Node Name                           Address        Labels
----------------------------------- -------------- ----------------------------
ip-172-31-30-140                    ⟵ Tunnel      company=acmecorp,env=aws,...
ip-172-31-34-128.us-east-2.compu... ⟵ Tunnel      access=open,enhanced_reco...
  1. 특정 노드의 특정 로그인에 대한 저장된 세션을 Windows 레지스트리에 추가하세요.

예를 들어, 노드 ip-172-31-30-140에서 ubuntu 로그인에 대한 저장된 세션을 Windows 레지스트리에 추가하려면 다음 명령을 실행하세요:

$ tsh puttyconfig ubuntu@ip-172-31-30-140
Added PuTTY session for ubuntu@ip-172-31-30-140 [proxy:mytenant.teleport.sh]

이 명령에 로그인을 제공하지 않으면 로컬 Windows 사용자명이 대신 사용됩니다.

저장된 세션을 사용하여 PuTTY로 연결하기#

  1. PuTTY를 시작하여 클러스터에 사용 가능한 저장된 세션을 확인하세요.

PuTTY 메인 창

  1. 세션을 더블 클릭하여 Teleport를 통해 호스트에 연결하세요.

PuTTY 콘솔

호스트에 연결하면 Teleport가 세션 시작에 대한 감사 로그 항목을 생성하고 Teleport 내의 "Active Sessions" 목록에 나타납니다.

세션 내에서 teleport status를 실행하여 Teleport 프록시를 통해 연결되었는지 확인하고 추적 목적으로 세션의 UUID를 출력할 수 있습니다. 클러스터에 대해 세션 녹화가 활성화된 경우 세션을 중지하고 호스트에서 연결을 끊은 후 세션 녹화를 볼 수도 있습니다.

리프 클러스터#

사용 가능한 리프 클러스터를 나열하려면 다음 명령을 실행하세요:

$ tsh clusters
Cluster Name         Status Cluster Type Labels Selected
-----------------    ------ ------------ ------ --------
teleport.example.com online root                *
example.teleport.sh  online leaf

tsh puttyconfig 명령에 --leaf <리프 클러스터 이름> 파라미터를 추가하여 PuTTY 세션에서 리프 클러스터에 접근할 수 있습니다.

예를 들어, 리프 클러스터 이름이 example.teleport.sh이고 노드가 ip-172-31-34-128.us-east-2.compute.internal인 경우, 다음 명령을 사용하여 ec2-user 로그인의 PuTTY 세션을 추가할 수 있습니다:

$ tsh puttyconfig --leaf example.teleport.sh ec2-user@ip-172-31-34-128.us-east-2.compute.internal
Added PuTTY session for ec2-user@ip-172-31-34-128.us-east-2.compute.internal [leaf:example.teleport.sh,proxy:teleport.example.com]

세션 이름 지정#

세션은 다음 스키마를 사용하여 이름이 지정됩니다:

루트 클러스터: <login>@<hostname> [proxy:<proxy address>]

리프 클러스터: <login>@<hostname> [leaf:<leaf cluster name>,proxy:<proxy address>]

WinSCP를 사용하여 SFTP로 파일 전송하기#

WinSCP로 PuTTY에서 저장된 세션을 가져올 수 있으며, 이를 통해 SSH 노드에 연결하고 파일을 주고받을 수 있습니다.

  1. WinSCP를 시작하세요.

WinSCP가 시작될 때 연결할 세션 목록이 있는 Site Manager "Login" 대화 상자가 나타나지 않는 경우, Tabs 메뉴를 클릭하고 Sites, **Site Manager...**를 선택하여 표시하세요.

WinSCP Site Manager 창

  1. 왼쪽 하단의 Tools 버튼을 클릭하고 Import Sites를 선택하세요.

클릭 'Tools', 'Import Sites...' 선택

  1. WinSCP로 가져와 사용하려는 저장된 PuTTY 세션 옆의 박스를 체크한 후 "OK" 버튼을 클릭하세요.

연결하려는 호스트와 일치하는 세션이 보이지 않으면 이 창을 닫고 터미널에서 위에 설명된 대로 tsh puttyconfig <user>@<host>를 실행하여 세션을 추가한 후 이 단계를 반복하세요.

가져올 PuTTY 세션 선택 후 OK 클릭

  1. WinSCP에서 PuTTY의 저장된 Host CA를 신뢰하고 로드하도록 설정하려면, 왼쪽 하단의 Tools를 다시 클릭하고 **Preferences...**를 선택하세요.
이전에 완료한 경우 나머지 단계 건너뛰기

이 PC에서 이 사용자로 이 과정을 이전에 완료한 경우 4단계와 5단계를 건너뛸 수 있습니다.

'Tools' 클릭, 'Preferences...' 선택

  1. 왼쪽의 Security 섹션을 클릭한 후 Trusted host certification authorities 섹션 아래의 Load authorities from PuTTY 체크박스를 체크하고 OK를 클릭하여 종료하세요.

'Security' 클릭, 'Load authorities from PuTTY' 체크 후 OK 클릭

  1. 왼쪽 목록에서 연결할 호스트를 선택하고 Login을 클릭하세요. 원한다면 이름을 더블 클릭하여 세션을 시작할 수도 있습니다.

목록에서 호스트 선택 후 Login 클릭

Teleport를 통해 WinSCP를 사용하여 파일을 업로드하거나 다운로드하면 감사 이벤트가 생성됩니다.

자주 묻는 질문#

tsh puttyconfig를 실행하려면 머신에 관리자 권한이 필요한가요?#

아니요, tshHKEY_CURRENT_USER 레지스트리 키만 변경합니다.

머신의 모든 사용자에게 저장된 PuTTY 세션을 추가할 수 있나요?#

아니요, 세션은 현재 사용자에게만 추가됩니다. 아래에 설명된 레지스트리 내보내기 방법을 사용하여 다른 사용자가 가져올 수 있도록 세션을 내보낼 수 있습니다.

저장된 PuTTY 세션을 다른 머신으로 내보낼 수 있나요?#

예, Registry Editor를 사용하여 HKEY_CURRENT_USER\Software\SimonTatham\PuTTY 레지스트리 키를 파일로 내보내고 다른 머신에서 이 파일을 가져오세요. Registry Editor를 실행하려면 관리자 권한이 필요합니다.

저장된 PuTTY 세션의 글꼴 크기, 창 크기 또는 기타 기본 설정을 변경할 수 있나요?#

세션이 추가된 후 PuTTY UI에서 "Saved sessions" 목록의 세션 이름을 클릭한 후 Load를 클릭하여 변경할 수 있습니다. 필요한 모든 변경을 수행한 후 세션을 다시 선택하고 Save를 클릭하세요.

특정 호스트에 대해 tsh puttyconfig를 다시 실행하면 저장된 세션의 커스텀 변경 사항이 덮어쓰여지나요?#

Teleport는 프록시 이름, 프록시 명령, 호스트명, 사용자명, 포트 등 의존하는 설정 파라미터만 수정합니다. 글꼴 크기, 창 크기 및 기타 파라미터의 변경 사항은 그대로 유지됩니다.

MobaXterm이나 SecureCRT와 같은 다른 그래픽 클라이언트를 사용할 수 있나요?#

현재 PuTTY 지원만 구현되어 있습니다. 대부분의 다른 그래픽 클라이언트는 Teleport 사용에 필수적인 SSH 사용자 인증서와 SSH 호스트 인증서를 모두 사용한 인증을 완전히 지원하지 않습니다.

Teleport 세션 지원을 추가하려면 해당 클라이언트의 제작자에게 연락하세요.

KiTTY나 Solar PuTTY 같은 PuTTY 포크를 사용할 수 있나요?#

포크가 PuTTY 0.78 이상을 기반으로 하는 경우 작동할 수 있습니다. 그러나 Teleport 팀은 PuTTY 표준 버전만 테스트하며 포크된 버전에 대한 지원을 제공할 수 없습니다.

저장된 Teleport PuTTY 세션을 WinSCP와 함께 사용할 수 있나요?#

예, WinSCP 버전 6.2 이상은 Teleport를 사용하여 연결하는 데 필요한 SSH 호스트 인증서를 사용한 검증을 지원합니다.

저장된 세션과 함께 대체 Teleport 인증 방법(tsh login --auth)을 사용할 수 있나요?#

아니요, PuTTY는 Teleport 클러스터에 대해 설정된 기본 인증 방법을 사용하는 tsh proxy ssh를 호출합니다.

Teleport 인증에 대한 자세한 내용은 인증 옵션을 참조하세요.

고급 사용자는 Registry Editor를 사용하여 ProxyTelnetCommand 키 아래에서 PuTTY 프록시 명령을 직접 수정할 수 있습니다. 주어진 호스트명에 대해 tsh puttyconfig를 다시 실행하면 이 명령이 덮어쓰여집니다.

문제 해결#

WinSCP에서 연결 시 Server unexpectedly closed network connection 또는 Error 232: The pipe is being closed가 표시됨#

이 오류는 일반적으로 tsh.exe 애플리케이션이 C:\Windows\System32 디렉터리에 잘못 배치된 경우 발생합니다. 이로 인해 WinSCP의 버그가 트리거되어 런타임에 tsh.exe 경로가 잘못 교체되어 연결 실패가 발생합니다. 이 버그는 PuTTY 세션에는 영향을 미치지 않는 것 같습니다.

이 버그의 영향을 받지 않는 tsh.exe를 저장할 수 있는 두 위치:

이 문제를 해결하려면 다음 단계를 따르세요:

  1. 위에 설명된 대로 tsh.exe 애플리케이션을 다른 디렉터리에 배치하세요.
  2. 각 PuTTY 세션에 대해 tsh puttyconfig를 다시 실행하여 세션 내의 tsh.exe 설정 경로를 교체하세요.
  3. WinSCP 내의 각 저장된 세션을 삭제하세요.
  4. 위의 2-3단계에 설명된 과정을 따라 저장된 PuTTY 세션을 WinSCP로 다시 가져오세요.

proxy: ERROR: access denied to <user> connecting to <proxy>#

tsh puttyconfig 명령에 잘못된 로그인 사용자명을 제공했습니다. Teleport 사용자/역할이 사용할 수 있는 권한이 있는 로그인 사용자명으로 명령을 다시 실행하세요. logins 역할 사양 또는 사용자 특성 아래에 나열된 로그인을 확인하세요.

tsh ssh로 성공적으로 로그인할 수 있다면 tsh puttyconfig와 동일한 로그인/호스트명을 사용할 수 있어야 합니다.

Connect failed [ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain]#

OpenSSH 서버에 연결하려 할 때 tsh puttyconfig 명령에 잘못된 로그인 사용자명을 제공했습니다. Teleport 사용자/역할이 사용할 수 있는 권한이 있는 로그인 사용자명으로 명령을 다시 실행하세요. logins 역할 사양 또는 사용자 특성 아래에 나열된 로그인을 확인하세요.

tsh ssh로 성공적으로 로그인할 수 있다면 tsh puttyconfig와 동일한 로그인/호스트명을 사용할 수 있어야 합니다.

proxy: ERROR: ssh: subsystem request failed#

Teleport 프록시가 저장된 세션에 제공된 호스트/포트에 연결할 수 없습니다. 이는 노드가 오프라인임을 의미할 수 있습니다. tsh ls에서 노드가 보이는지, tsh ssh login@hostname으로 연결할 수 있는지 확인하세요. 성공하면 더 자세한 오류에 대해 Teleport 프록시 로그를 확인하세요.

노드가 Teleport가 아닌 OpenSSH를 실행하는 경우, 세션을 추가할 때 예를 들어 tsh puttyconfig --port 22 user@host 또는 tsh puttyconfig user@host:22를 사용하여 sshd 포트를 지정해야 합니다.

proxy: direct dialing to nodes not found in inventory is not supported#

이 오류는 일반적으로 tsh puttyconfig를 실행할 때 포트를 제공하지 않고 에이전트 없는 OpenSSH 호스트(즉, sshd를 실행하는 호스트)를 등록했음을 의미합니다. tsh puttyconfig --port 22 user@host를 사용하여 올바른 포트(이 예시에서는 22)로 호스트를 다시 추가해 보세요.

포트를 수정한 후에도 이 오류가 계속 발생하면, 연결하려는 호스트가 tsh ls 출력에 나타나는지 확인하세요. tsh ls 출력에 나타나지 않는 호스트명은 연결에 사용할 수 없습니다.

Unable to use certificate file "C:\Users\<username>\.tsh\keys\<proxy>\<user>-ssh\<cluster>-cert.pub" (unable to open file)#

Teleport에 올바르게 로그인되지 않았습니다. 저장된 PuTTY 세션을 시작하기 전에 tsh login --proxy=<proxy hostname>을 실행하여 유효한 인증서를 받으세요.

루트 클러스터의 프록시를 사용하여 리프 클러스터에 대한 저장된 세션을 사용하는 경우, 리프 클러스터에 대한 세션을 시작하려면 루트 클러스터 자체에 로그인해야 합니다.

ERROR: No proxy address specified, missed --proxy flag?#

로컬에 유효한 tsh 자격 증명이 없습니다. 먼저 tsh login --proxy=<proxy hostname>을 실행하여 로그인하거나, tsh puttyconfig를 실행할 때 --proxy 파라미터를 제공하세요.

ERROR: validity string for TeleportHostCA-<cluster_name>...#

validity string과 관련된 모든 오류는 특정 호스트 CA에 대해 신뢰해야 하는 호스트명 목록을 보유하는 PuTTY 레지스트리 키의 잘못된 형식으로 인해 발생합니다. 잘못된 형식은 일반적으로 PuTTY GUI 또는 Registry Editor에서 호스트 CA 레코드를 직접 편집하여 발생합니다. 이는 절대 필요하지 않으며 강력히 권장하지 않습니다.

이 오류를 수정하려면 PuTTY를 열고 왼쪽에서 SSH -> Host Keys -> Configure Host CAs로 이동하세요. 오류에서 일치하는 TeleportHostCA-<cluster_name> 호스트 CA 레코드를 선택하고 Load를 클릭하세요. "Valid hosts this key is trusted to certify" 아래의 항목을 수동으로 수정할 수 있습니다. 형식은 <hostname> || <hostname> || ...을 따라야 합니다. 또는 Delete 버튼을 클릭하세요.

호스트 CA 레코드를 삭제하면 저장된 세션이 여전히 존재하더라도 PuTTY를 통해 접근하려는 해당 클러스터의 모든 Teleport SSH 서비스에 대해 tsh puttyconfig를 다시 실행해야 합니다.

이 오류가 일상적인 작동 중에 나타나면 버그이므로 GitHub을 통해 보고해야 합니다.

tsh 제거#

tsh 및 관련 사용자 데이터를 제거하려면 Teleport 제거를 참조하세요.

Teleport와 PuTTY 및 WinSCP 사용

원문 보기
요약

이 가이드는 Teleport 클라이언트 도구 tsh를 사용하여 PuTTY와 함께 사용할 저장된 세션을 추가하는 방법과 PuTTY를 클라이언트로 사용하여 SSH 노드에 연결하는 방법을 보여줍니다. 또한 이러한 저장된 세션을 WinSCP와 함께 선택적으로 사용하여 SFTP로 SSH 노드에서 파일을 전송하는 방법도 보여줍니다.

이 가이드는 Teleport 클라이언트 도구 tsh를 사용하여 PuTTY와 함께 사용할 저장된 세션을 추가하는 방법과 PuTTY를 클라이언트로 사용하여 SSH 노드에 연결하는 방법을 보여줍니다.

또한 이러한 저장된 세션을 WinSCP와 함께 선택적으로 사용하여 SFTP로 SSH 노드에서 파일을 전송하는 방법도 보여줍니다.

다음 내용을 배울 수 있습니다:

  • Teleport 클러스터에 연결된 SSH 노드에 대한 저장된 PuTTY 세션 생성.
  • 저장된 PuTTY 세션을 사용하여 대화형 셸에 로그인.
  • (선택 사항) 저장된 PuTTY 세션을 WinSCP로 가져와 SSH 노드에서 파일을 전송하는 SFTP 세션 시작.

사전 요구 사항#

  • Windows 10 이상이 실행되는 클라이언트 머신. tsh를 사용하여 PuTTY 세션을 저장하는 것은 Windows에서만 가능합니다.

  • Teleport tsh.exe 클라이언트. tsh.exe 클라이언트를 다운로드하려면 다음 명령을 실행하세요:

    $ curl.exe -O https://cdn.teleport.dev/teleport-v(=teleport.version=)-windows-amd64-bin.zip
    

    그런 다음 아카이브의 압축을 풀고 tsh.exe%PATH%로 이동하세요.

    Note

tsh.exeSystem32 디렉터리에 배치하지 마세요. WinSCP를 사용할 때 문제가 발생할 수 있습니다. 이미 %PATH%에 포함되어 있는 %SystemRoot%(예: C:\Windows)를 대신 사용하세요.

사용 중인 Windows 시스템에 관리자 권한이 없는 경우 대신 `%USERPROFILE%`
(예: `C:\Users\<username>`)를 사용할 수 있지만, `tsh.exe`와 동일한 디렉터리에 있지 않으면
명령줄에서 전역으로 `tsh` 명령을 실행할 수 없습니다.

요약#

PuTTY에 저장된 세션을 추가하려면:

  1. tsh login 명령을 사용하여 Teleport 클러스터에 로그인하세요:
$ tsh login --proxy=teleport.example.com

이 명령은 사용자 인증서를 검색하고 %USERPROFILE%/.tsh 디렉터리의 로컬 파일에 저장합니다.

  1. 클러스터 내에서 사용자가 연결할 수 있는 SSH 노드를 나열하세요:
$ tsh ls
Node Name                           Address        Labels
----------------------------------- -------------- ----------------------------
ip-172-31-30-140                    127.0.0.1:3022 company=acmecorp,env=aws,...
ip-172-31-34-128.us-east-2.compu... ⟵ Tunnel      access=open,enhanced_reco...
ip-172-31-8-63                      172.31.8.63:22 type=openssh
  1. 특정 노드의 특정 로그인에 대한 저장된 세션을 Windows 레지스트리에 추가하세요.

예를 들어, 노드 ip-172-31-30-140에서 ubuntu 로그인에 대한 저장된 세션을 Windows 레지스트리에 추가하려면 다음 명령을 실행하세요:

$ tsh puttyconfig ubuntu@ip-172-31-30-140
Added PuTTY session for ubuntu@ip-172-31-30-140 [proxy:teleport.example.com]

이 명령에 로그인을 제공하지 않으면 로컬 Windows 사용자명이 대신 사용됩니다.

클러스터 내에 등록된 OpenSSH 노드(teleport join openssh로 추가된)에 대한 세션을 추가하는 경우, tsh puttyconfig로 세션을 추가할 때 sshd 포트(보통 22)를 지정해야 합니다:

$ tsh puttyconfig --port 22 ubuntu@ip-172-31-8-63
Added PuTTY session for ubuntu@ip-172-31-8-63 [proxy:teleport.example.com]

원한다면 tsh puttyconfig user@host:22를 사용할 수도 있습니다.

  1. tsh login 명령을 사용하여 Teleport 클러스터에 로그인하세요:
$ tsh login --proxy=mytenant.teleport.sh

이 명령은 사용자 인증서를 검색하고 %USERPROFILE%/.tsh 디렉터리의 로컬 파일에 저장합니다.

  1. 클러스터 내에서 사용자가 연결할 수 있는 SSH 노드를 나열하세요:
$ tsh ls
Node Name                           Address        Labels
----------------------------------- -------------- ----------------------------
ip-172-31-30-140                    ⟵ Tunnel      company=acmecorp,env=aws,...
ip-172-31-34-128.us-east-2.compu... ⟵ Tunnel      access=open,enhanced_reco...
  1. 특정 노드의 특정 로그인에 대한 저장된 세션을 Windows 레지스트리에 추가하세요.

예를 들어, 노드 ip-172-31-30-140에서 ubuntu 로그인에 대한 저장된 세션을 Windows 레지스트리에 추가하려면 다음 명령을 실행하세요:

$ tsh puttyconfig ubuntu@ip-172-31-30-140
Added PuTTY session for ubuntu@ip-172-31-30-140 [proxy:mytenant.teleport.sh]

이 명령에 로그인을 제공하지 않으면 로컬 Windows 사용자명이 대신 사용됩니다.

저장된 세션을 사용하여 PuTTY로 연결하기#

  1. PuTTY를 시작하여 클러스터에 사용 가능한 저장된 세션을 확인하세요.

PuTTY 메인 창

  1. 세션을 더블 클릭하여 Teleport를 통해 호스트에 연결하세요.

PuTTY 콘솔

호스트에 연결하면 Teleport가 세션 시작에 대한 감사 로그 항목을 생성하고 Teleport 내의 "Active Sessions" 목록에 나타납니다.

세션 내에서 teleport status를 실행하여 Teleport 프록시를 통해 연결되었는지 확인하고 추적 목적으로 세션의 UUID를 출력할 수 있습니다. 클러스터에 대해 세션 녹화가 활성화된 경우 세션을 중지하고 호스트에서 연결을 끊은 후 세션 녹화를 볼 수도 있습니다.

리프 클러스터#

사용 가능한 리프 클러스터를 나열하려면 다음 명령을 실행하세요:

$ tsh clusters
Cluster Name         Status Cluster Type Labels Selected
-----------------    ------ ------------ ------ --------
teleport.example.com online root                *
example.teleport.sh  online leaf

tsh puttyconfig 명령에 --leaf <리프 클러스터 이름> 파라미터를 추가하여 PuTTY 세션에서 리프 클러스터에 접근할 수 있습니다.

예를 들어, 리프 클러스터 이름이 example.teleport.sh이고 노드가 ip-172-31-34-128.us-east-2.compute.internal인 경우, 다음 명령을 사용하여 ec2-user 로그인의 PuTTY 세션을 추가할 수 있습니다:

$ tsh puttyconfig --leaf example.teleport.sh ec2-user@ip-172-31-34-128.us-east-2.compute.internal
Added PuTTY session for ec2-user@ip-172-31-34-128.us-east-2.compute.internal [leaf:example.teleport.sh,proxy:teleport.example.com]

세션 이름 지정#

세션은 다음 스키마를 사용하여 이름이 지정됩니다:

루트 클러스터: <login>@<hostname> [proxy:<proxy address>]

리프 클러스터: <login>@<hostname> [leaf:<leaf cluster name>,proxy:<proxy address>]

WinSCP를 사용하여 SFTP로 파일 전송하기#

WinSCP로 PuTTY에서 저장된 세션을 가져올 수 있으며, 이를 통해 SSH 노드에 연결하고 파일을 주고받을 수 있습니다.

  1. WinSCP를 시작하세요.

WinSCP가 시작될 때 연결할 세션 목록이 있는 Site Manager "Login" 대화 상자가 나타나지 않는 경우, Tabs 메뉴를 클릭하고 Sites, **Site Manager...**를 선택하여 표시하세요.

WinSCP Site Manager 창

  1. 왼쪽 하단의 Tools 버튼을 클릭하고 Import Sites를 선택하세요.

클릭 'Tools', 'Import Sites...' 선택

  1. WinSCP로 가져와 사용하려는 저장된 PuTTY 세션 옆의 박스를 체크한 후 "OK" 버튼을 클릭하세요.

연결하려는 호스트와 일치하는 세션이 보이지 않으면 이 창을 닫고 터미널에서 위에 설명된 대로 tsh puttyconfig <user>@<host>를 실행하여 세션을 추가한 후 이 단계를 반복하세요.

가져올 PuTTY 세션 선택 후 OK 클릭

  1. WinSCP에서 PuTTY의 저장된 Host CA를 신뢰하고 로드하도록 설정하려면, 왼쪽 하단의 Tools를 다시 클릭하고 **Preferences...**를 선택하세요.
이전에 완료한 경우 나머지 단계 건너뛰기

이 PC에서 이 사용자로 이 과정을 이전에 완료한 경우 4단계와 5단계를 건너뛸 수 있습니다.

'Tools' 클릭, 'Preferences...' 선택

  1. 왼쪽의 Security 섹션을 클릭한 후 Trusted host certification authorities 섹션 아래의 Load authorities from PuTTY 체크박스를 체크하고 OK를 클릭하여 종료하세요.

'Security' 클릭, 'Load authorities from PuTTY' 체크 후 OK 클릭

  1. 왼쪽 목록에서 연결할 호스트를 선택하고 Login을 클릭하세요. 원한다면 이름을 더블 클릭하여 세션을 시작할 수도 있습니다.

목록에서 호스트 선택 후 Login 클릭

Teleport를 통해 WinSCP를 사용하여 파일을 업로드하거나 다운로드하면 감사 이벤트가 생성됩니다.

자주 묻는 질문#

tsh puttyconfig를 실행하려면 머신에 관리자 권한이 필요한가요?#

아니요, tshHKEY_CURRENT_USER 레지스트리 키만 변경합니다.

머신의 모든 사용자에게 저장된 PuTTY 세션을 추가할 수 있나요?#

아니요, 세션은 현재 사용자에게만 추가됩니다. 아래에 설명된 레지스트리 내보내기 방법을 사용하여 다른 사용자가 가져올 수 있도록 세션을 내보낼 수 있습니다.

저장된 PuTTY 세션을 다른 머신으로 내보낼 수 있나요?#

예, Registry Editor를 사용하여 HKEY_CURRENT_USER\Software\SimonTatham\PuTTY 레지스트리 키를 파일로 내보내고 다른 머신에서 이 파일을 가져오세요. Registry Editor를 실행하려면 관리자 권한이 필요합니다.

저장된 PuTTY 세션의 글꼴 크기, 창 크기 또는 기타 기본 설정을 변경할 수 있나요?#

세션이 추가된 후 PuTTY UI에서 "Saved sessions" 목록의 세션 이름을 클릭한 후 Load를 클릭하여 변경할 수 있습니다. 필요한 모든 변경을 수행한 후 세션을 다시 선택하고 Save를 클릭하세요.

특정 호스트에 대해 tsh puttyconfig를 다시 실행하면 저장된 세션의 커스텀 변경 사항이 덮어쓰여지나요?#

Teleport는 프록시 이름, 프록시 명령, 호스트명, 사용자명, 포트 등 의존하는 설정 파라미터만 수정합니다. 글꼴 크기, 창 크기 및 기타 파라미터의 변경 사항은 그대로 유지됩니다.

MobaXterm이나 SecureCRT와 같은 다른 그래픽 클라이언트를 사용할 수 있나요?#

현재 PuTTY 지원만 구현되어 있습니다. 대부분의 다른 그래픽 클라이언트는 Teleport 사용에 필수적인 SSH 사용자 인증서와 SSH 호스트 인증서를 모두 사용한 인증을 완전히 지원하지 않습니다.

Teleport 세션 지원을 추가하려면 해당 클라이언트의 제작자에게 연락하세요.

KiTTY나 Solar PuTTY 같은 PuTTY 포크를 사용할 수 있나요?#

포크가 PuTTY 0.78 이상을 기반으로 하는 경우 작동할 수 있습니다. 그러나 Teleport 팀은 PuTTY 표준 버전만 테스트하며 포크된 버전에 대한 지원을 제공할 수 없습니다.

저장된 Teleport PuTTY 세션을 WinSCP와 함께 사용할 수 있나요?#

예, WinSCP 버전 6.2 이상은 Teleport를 사용하여 연결하는 데 필요한 SSH 호스트 인증서를 사용한 검증을 지원합니다.

저장된 세션과 함께 대체 Teleport 인증 방법(tsh login --auth)을 사용할 수 있나요?#

아니요, PuTTY는 Teleport 클러스터에 대해 설정된 기본 인증 방법을 사용하는 tsh proxy ssh를 호출합니다.

Teleport 인증에 대한 자세한 내용은 인증 옵션을 참조하세요.

고급 사용자는 Registry Editor를 사용하여 ProxyTelnetCommand 키 아래에서 PuTTY 프록시 명령을 직접 수정할 수 있습니다. 주어진 호스트명에 대해 tsh puttyconfig를 다시 실행하면 이 명령이 덮어쓰여집니다.

문제 해결#

WinSCP에서 연결 시 Server unexpectedly closed network connection 또는 Error 232: The pipe is being closed가 표시됨#

이 오류는 일반적으로 tsh.exe 애플리케이션이 C:\Windows\System32 디렉터리에 잘못 배치된 경우 발생합니다. 이로 인해 WinSCP의 버그가 트리거되어 런타임에 tsh.exe 경로가 잘못 교체되어 연결 실패가 발생합니다. 이 버그는 PuTTY 세션에는 영향을 미치지 않는 것 같습니다.

이 버그의 영향을 받지 않는 tsh.exe를 저장할 수 있는 두 위치:

이 문제를 해결하려면 다음 단계를 따르세요:

  1. 위에 설명된 대로 tsh.exe 애플리케이션을 다른 디렉터리에 배치하세요.
  2. 각 PuTTY 세션에 대해 tsh puttyconfig를 다시 실행하여 세션 내의 tsh.exe 설정 경로를 교체하세요.
  3. WinSCP 내의 각 저장된 세션을 삭제하세요.
  4. 위의 2-3단계에 설명된 과정을 따라 저장된 PuTTY 세션을 WinSCP로 다시 가져오세요.

proxy: ERROR: access denied to <user> connecting to <proxy>#

tsh puttyconfig 명령에 잘못된 로그인 사용자명을 제공했습니다. Teleport 사용자/역할이 사용할 수 있는 권한이 있는 로그인 사용자명으로 명령을 다시 실행하세요. logins 역할 사양 또는 사용자 특성 아래에 나열된 로그인을 확인하세요.

tsh ssh로 성공적으로 로그인할 수 있다면 tsh puttyconfig와 동일한 로그인/호스트명을 사용할 수 있어야 합니다.

Connect failed [ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain]#

OpenSSH 서버에 연결하려 할 때 tsh puttyconfig 명령에 잘못된 로그인 사용자명을 제공했습니다. Teleport 사용자/역할이 사용할 수 있는 권한이 있는 로그인 사용자명으로 명령을 다시 실행하세요. logins 역할 사양 또는 사용자 특성 아래에 나열된 로그인을 확인하세요.

tsh ssh로 성공적으로 로그인할 수 있다면 tsh puttyconfig와 동일한 로그인/호스트명을 사용할 수 있어야 합니다.

proxy: ERROR: ssh: subsystem request failed#

Teleport 프록시가 저장된 세션에 제공된 호스트/포트에 연결할 수 없습니다. 이는 노드가 오프라인임을 의미할 수 있습니다. tsh ls에서 노드가 보이는지, tsh ssh login@hostname으로 연결할 수 있는지 확인하세요. 성공하면 더 자세한 오류에 대해 Teleport 프록시 로그를 확인하세요.

노드가 Teleport가 아닌 OpenSSH를 실행하는 경우, 세션을 추가할 때 예를 들어 tsh puttyconfig --port 22 user@host 또는 tsh puttyconfig user@host:22를 사용하여 sshd 포트를 지정해야 합니다.

proxy: direct dialing to nodes not found in inventory is not supported#

이 오류는 일반적으로 tsh puttyconfig를 실행할 때 포트를 제공하지 않고 에이전트 없는 OpenSSH 호스트(즉, sshd를 실행하는 호스트)를 등록했음을 의미합니다. tsh puttyconfig --port 22 user@host를 사용하여 올바른 포트(이 예시에서는 22)로 호스트를 다시 추가해 보세요.

포트를 수정한 후에도 이 오류가 계속 발생하면, 연결하려는 호스트가 tsh ls 출력에 나타나는지 확인하세요. tsh ls 출력에 나타나지 않는 호스트명은 연결에 사용할 수 없습니다.

Unable to use certificate file "C:\Users\<username>\.tsh\keys\<proxy>\<user>-ssh\<cluster>-cert.pub" (unable to open file)#

Teleport에 올바르게 로그인되지 않았습니다. 저장된 PuTTY 세션을 시작하기 전에 tsh login --proxy=<proxy hostname>을 실행하여 유효한 인증서를 받으세요.

루트 클러스터의 프록시를 사용하여 리프 클러스터에 대한 저장된 세션을 사용하는 경우, 리프 클러스터에 대한 세션을 시작하려면 루트 클러스터 자체에 로그인해야 합니다.

ERROR: No proxy address specified, missed --proxy flag?#

로컬에 유효한 tsh 자격 증명이 없습니다. 먼저 tsh login --proxy=<proxy hostname>을 실행하여 로그인하거나, tsh puttyconfig를 실행할 때 --proxy 파라미터를 제공하세요.

ERROR: validity string for TeleportHostCA-<cluster_name>...#

validity string과 관련된 모든 오류는 특정 호스트 CA에 대해 신뢰해야 하는 호스트명 목록을 보유하는 PuTTY 레지스트리 키의 잘못된 형식으로 인해 발생합니다. 잘못된 형식은 일반적으로 PuTTY GUI 또는 Registry Editor에서 호스트 CA 레코드를 직접 편집하여 발생합니다. 이는 절대 필요하지 않으며 강력히 권장하지 않습니다.

이 오류를 수정하려면 PuTTY를 열고 왼쪽에서 SSH -> Host Keys -> Configure Host CAs로 이동하세요. 오류에서 일치하는 TeleportHostCA-<cluster_name> 호스트 CA 레코드를 선택하고 Load를 클릭하세요. "Valid hosts this key is trusted to certify" 아래의 항목을 수동으로 수정할 수 있습니다. 형식은 <hostname> || <hostname> || ...을 따라야 합니다. 또는 Delete 버튼을 클릭하세요.

호스트 CA 레코드를 삭제하면 저장된 세션이 여전히 존재하더라도 PuTTY를 통해 접근하려는 해당 클러스터의 모든 Teleport SSH 서비스에 대해 tsh puttyconfig를 다시 실행해야 합니다.

이 오류가 일상적인 작동 중에 나타나면 버그이므로 GitHub을 통해 보고해야 합니다.

tsh 제거#

tsh 및 관련 사용자 데이터를 제거하려면 Teleport 제거를 참조하세요.