Infograb logo
텔레포트 설치

이 가이드는 귀하의 플랫폼에 텔레포트 이진 파일을 설치하는 방법을 보여줍니다, 포함하여:

  • teleport
  • tsh
  • tctl
  • tbot

텔레포트가 처음이라면, 시작 가이드를 따르시길 권장합니다.

최상의 결과를 얻으려면 텔레포트 클라이언트(tsh, tctl, tbot)가 연결하는 클러스터와 동일한 주요 버전을 가져야 합니다. 텔레포트 서버는 동일한 주요 버전 또는 한 버전 낮은 클라이언트와 호환됩니다. 텔레포트 서버는 새로운 주요 버전의 클라이언트를 지원하지 않습니다.

자세한 정보는 업그레이드하기 가이드를 참조하십시오.

운영 체제 지원

텔레포트는 아래 나열된 플랫폼에서 공식적으로 지원됩니다. 오픈 소스 커뮤니티는 리눅스 외의 UNIX 변형에서 텔레포트를 빌드하고 실행하는 데 성공했습니다 [1].

운영 체제teleport 데몬tctl 관리 도구tsh 및 텔레포트 연결 사용자 클라이언트 [2]웹 UI (브라우저를 통해)tbot 데몬
Linux v2.6.23+ (RHEL/CentOS 7+, Amazon Linux 2+, Amazon Linux 2023+, Ubuntu 16.04+, Debian 9+, SLES 12 SP 5+, SLES 15 SP 5+) [3]
macOS v10.15+ (Catalina)
Windows 10+ (rev. 1607) [4]아니오아니오

[1] 텔레포트는 Go로 작성되었으며, 이러한 시스템 요구 사항의 많은 부분이 Go 툴체인의 요구 사항 때문입니다.

[2] tsh는 명령줄 클라이언트(CLI)이고 텔레포트 연결은 그래픽 사용자 인터페이스(GUI) 데스크탑 클라이언트입니다. 사용법 및 설치는 텔레포트 연결 사용을 참조하세요.

[3] 향상된 세션 녹화는 리눅스 커널 v5.8+을 요구합니다.

[4] 텔레포트 서버는 아직 Windows에서 실행되지 않지만 tsh, tctl, 및 텔레포트 연결(텔레포트 데스크탑 클라이언트)은 Windows 10 및 이후 버전에서 대부분의 기능을 지원합니다.

리눅스

이 섹션에서는 단일 리눅스 서버에 텔레포트 이진 파일을 설치하는 방법을 보여줍니다.

텔레포트는 다양한 운영 체제, 플랫폼 및 텔레포트 버전용으로 DEB 및 RPM 패키지 리포지토리를 유지합니다. DEB 또는 RPM 패키지에서 텔레포트를 설치하는 서버는 systemd가 설치되어 있어야 합니다. 텔레포트 이진 파일이 포함된 TAR 아카이브를 다운로드할 수도 있습니다. 모든 설치에는 teleport, tsh, tctl, 및 tbot이 포함됩니다.

권장 설치 단계

텔레포트를 처음 사용하신다면 텔레포트 클라우드 계정으로 시작하는 것이 좋습니다. 그곳에서 사용자께서 직접 배포해야 할 텔레포트 구성 요소는 텔레포트 에이전트입니다. 에이전트는 다음과 같이 배포할 수 있습니다:

  • 텔레포트 웹 UI의 /web/discover에 있는 지침을 따라, 텔레포트 클러스터에 등록할 리소스를 선택하고 리눅스 호스트에서 실행할 설치 스크립트를 가져옵니다.
  • Terraform을 사용하여 에이전트 배포에서 에이전트 배포를 위한 샘플 Terraform 모듈을 사용합니다.
  • 텔레포트 에이전트를 설치하려는 각 리눅스 서버에서 원라인 설치 스크립트를 실행합니다.

자체 호스팅 텔레포트 엔터프라이즈 클러스터를 실행 중이라면, 인프라에서 텔레포트 엔터프라이즈를 배포하기 위한 전체 요구 사항과 Terraform 모듈이 제공되는 고가용성 텔레포트 클러스터 배포 안내서를 읽어보십시오.

자체 호스팅 텔레포트 엔터프라이즈 클러스터는 라이센스 파일이 필요합니다. 이를 관리하는 방법은 텔레포트 엔터프라이즈 라이센스 파일을 읽으십시오.

원라인 설치 스크립트

리눅스 서버에 텔레포트 이진 파일을 설치하기 위해 원라인 명령을 실행할 수 있습니다. 이 명령은 설치할 텔레포트 버전과 에디션을 사용하고, 실행되는 운영 체제에 대한 정보를 사용하여 패키지 관리자와 텔레포트를 설치합니다.

먼저, 귀하의 에디션에 따라 환경 변수를 할당합니다:

다음 명령은 텔레포트 클라우드 계정을 쿼리하여 설치할 텔레포트 버전을 결정하는 방법을 보여줍니다. 이렇게 하면 텔레포트 설치가 자동 업데이트를 관리하는 서비스와 동일한 주요 버전을 가집니다:

TELEPORT_EDITION="cloud"
TELEPORT_DOMAIN=example.teleport.sh
TELEPORT_VERSION="$(curl https://$TELEPORT_DOMAIN/v1/webapi/automaticupgrades/channel/stable/cloud/version | sed 's/v//')"
TELEPORT_EDITION="enterprise"
TELEPORT_VERSION="16.2.0"
TELEPORT_EDITION="oss"
TELEPORT_VERSION="16.2.0"

텔레포트를 설치할 서버에서 아래의 설치 스크립트를 다운로드하고 실행합니다:

curl https://cdn.teleport.dev/install-v16.2.0.sh | bash -s ${TELEPORT_VERSION?} ${TELEPORT_EDITION?}

패키지 리포지토리

원라인 설치 스크립트는 로컬 시스템에서 패키지 관리자를 자동으로 감지하고 이를 사용하여 업스트림 리포지토리에서 텔레포트를 설치합니다.

시스템이 원라인 설치 스크립트를 지원하지 않으면, 이 섹션의 지침에서 텔레포트 패키지 리포지토리 작업 방법에 대한 지침을 읽으십시오.

  1. 텔레포트 설치 명령을 실행할 터미널에서 설치할 패키지와 버전을 나타내는 다음 환경 변수를 할당합니다:

텔레포트 클라우드 설치는 자동 에이전트 업데이트를 포함해야 합니다. 다음 명령은 텔레포트 클라우드 계정을 쿼리하여 설치할 텔레포트 버전을 결정하는 방법을 보여줍니다. 이렇게 하면 텔레포트 설치가 자동 업데이트를 수행하는 서비스와 동일한 주요 버전을 가지게 됩니다:

export TELEPORT_DOMAIN=example.teleport.com
export TELEPORT_VERSION="$(curl https://$TELEPORT_DOMAIN/v1/webapi/automaticupgrades/channel/stable/cloud/version | sed 's/v//')"
export TELEPORT_PKG="teleport-ent-${TELEPORT_VERSION?} teleport-ent-updater"
export TELEPORT_CHANNEL=stable/cloud

Debian 또는 Ubuntu에 텔레포트를 설치하는 경우, TELEPORT_PKG는 약간 다릅니다:

export TELEPORT_PKG="teleport-ent=${TELEPORT_VERSION?} teleport-ent-updater"
export TELEPORT_PKG=teleport-ent
export TELEPORT_VERSION=v16
export TELEPORT_CHANNEL=stable/${TELEPORT_VERSION?}

FedRAMP/FIPS 준수 설치의 경우, teleport-ent-fips 패키지를 설치합니다:

export TELEPORT_PKG=teleport-ent-fips
export TELEPORT_PKG=teleport
export TELEPORT_VERSION=v16
export TELEPORT_CHANNEL=stable/${TELEPORT_VERSION?}
  1. 텔레포트는 리눅스 시스템에서 /etc/os-release에 정의된 변수를 기반으로 다양한 리눅스 배포판에 대한 DEB 및 RPM 패키지 리포지토리를 유지합니다. 이 파일을 소스하여 변수를 정의합니다:
source /etc/os-release
  1. ID 환경 변수의 값이 지원되는지 확인하세요.

텔레포트 DEB 및 RPM 리포지토리는 모든 배포 변형에 대한 패키지를 노출하지 않습니다. RPM 리포지토리를 사용하여 텔레포트를 설치할 때, 지원되는 가장 가까운 배포판의 패키지를 설치하기 위해 /etc/os-release에 설정된 ID 변수를 ID_LIKE로 교체해야 할 수 있습니다.

현재 지원되는 배포판(및 ID 값)은 다음과 같습니다:

배포판버전/etc/os-releaseID
Amazon Linux2 및 2023amzn
CentOS>= 7centos
Debian>= 9debian
RHEL>= 7rhel
SLES>= 12 SP5, >= 15 SP5sles
Ubuntu>= 16.04ubuntu

향상된 세션 녹화는 리눅스 커널 버전 5.8+을 요구합니다. 이는 텔레포트의 다른 기능보다 더 최근의 OS 버전을 요구합니다:

배포판버전
Amazon Linux2 (2021년 11월 이후), 2023
CentOS/RHEL9+
Debian11 또는 10(백포트 포함)
Ubuntu20.042+

ID의 값이 위 목록에 없으면, /etc/os-release에서 소스한 ID_LIKE 변수의 공백으로 구분된 값을 찾아 그 중 하나가 목록에 있는지 확인하세요.

  1. 패키지 관리자에 대한 지침을 따릅니다:

텔레포트 PGP 공개 키 다운로드

sudo curl https://apt.releases.teleport.dev/gpg \-o /usr/share/keyrings/teleport-archive-keyring.asc

텔레포트 APT 리포지토리 추가. 각 주요 릴리즈에 대해 이 파일을 업데이트해야 합니다.

echo "deb [signed-by=/usr/share/keyrings/teleport-archive-keyring.asc] \https://apt.releases.teleport.dev/${ID?} ${VERSION_CODENAME?} \${TELEPORT_CHANNEL?}" \| sudo tee /etc/apt/sources.list.d/teleport.list > /dev/null

sudo apt-get update
sudo apt-get install ${TELEPORT_PKG?}

텔레포트 YUM 리포지토리 추가. 각 주요 릴리즈에 대해 이 파일을 업데이트해야 합니다.

먼저, $VERSION_ID에서 주요 버전을 가져와서 이 패키지가 올바른 패키지 버전을 가져오도록 합니다.

VERSION_ID=$(echo $VERSION_ID | grep -Eo "^[0-9]+")
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo "$(rpm --eval "https://yum.releases.teleport.dev/$ID/$VERSION_ID/Teleport/%{_arch}/${TELEPORT_CHANNEL?}/teleport.repo")"
sudo yum install ${TELEPORT_PKG?}

팁: sudo에서 사용하는 경로에 /usr/local/bin을 추가합니다(그래서 'sudo tctl users add'가 문서에 따라 작동합니다)

echo "Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin" > /etc/sudoers.d/secure_path

텔레포트 Zypper 리포지토리 추가. 각 주요 릴리즈에 대해 이 파일을 업데이트해야 합니다.

먼저, $VERSION_ID에서 OS 주요 버전을 가져와서 이 패키지가 올바른 패키지 버전을 가져오도록 합니다.

VERSION_ID=$(echo $VERSION_ID | grep -Eo "^[0-9]+")

zypper를 사용하여 텔레포트 RPM repo 추가

sudo zypper addrepo --refresh --repo $(rpm --eval "https://zypper.releases.teleport.dev/$ID/$VERSION_ID/Teleport/%{_arch}/${TELEPORT_CHANNEL?}/teleport-zypper.repo")
sudo zypper --gpg-auto-import-keys refresh teleport
sudo zypper install ${TELEPORT_PKG?}

팁: sudo에서 사용하는 경로에 /usr/local/bin을 추가합니다(그래서 'sudo tctl users add'가 문서에 따라 작동합니다)

echo "Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin" > /etc/sudoers.d/secure_path

v16를 위한 텔레포트 YUM 리포지토리 추가.

각 주요 릴리즈에 대해 이 파일을 업데이트해야 합니다.

먼저, $VERSION_ID에서 주요 버전을 가져와서 이 패키지가 올바른 패키지 버전을 가져오도록 합니다.

VERSION_ID=$(echo $VERSION_ID | grep -Eo "^[0-9]+")

dnf config-manager 설치

sudo yum install -y yum-utils

dnf config manager 플러그인을 사용하여 텔레포트 RPM 리포를 추가합니다.

sudo dnf config-manager --add-repo "$(rpm --eval "https://yum.releases.teleport.dev/$ID/$VERSION_ID/Teleport/%{_arch}/${TELEPORT_CHANNEL?}/teleport.repo")"

텔레포트 설치

sudo dnf install ${TELEPORT_PKG}

팁: sudo에서 사용하는 경로에 /usr/local/bin을 추가합니다(그래서 'sudo tctl users add'가 문서에 따라 작동합니다)

echo "Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin" > /etc/sudoers.d/secure_path

TAR 아카이브 (자체 호스팅 전용)

자체 호스팅 배포를 위해 텔레포트는 리눅스 호환 이진 파일 TAR 아카이브를 https://cdn.teleport.dev에서 유지합니다. 이 섹션은 텔레포트 TAR 아카이브와 사용하는 방법을 설명합니다.

자동 에이전트 업데이트를 TAR 아카이브를 사용하여 설치하는 것은 불가능합니다. 텔레포트 클라우드 고객은 자동 업데이트를 설치하기 위해 원라인 설치 스크립트를 사용하거나 패키지 리포지토리에서 텔레포트를 수동으로 설치해야 합니다.

  1. 터미널에서 설치할 아카이브 다운로드에 사용할 환경 변수를 할당합니다.

텔레포트 커뮤니티 에디션의 경우, 텔레포트 패키지는 teleport라고 합니다:

TELEPORT_PKG=teleport

자체 호스팅의 텔레포트 엔터프라이즈 배포의 경우, 패키지는 teleport-ent라고 합니다:

TELEPORT_PKG=teleport-ent
  1. 시스템 텔레포트 버전과 시스템 아키텍처를 지정하여 환경 변수를 할당합니다:

    TELEPORT_VERSION=16.2.0
    SYSTEM_ARCH=""

    사용 가능한 아키텍처 값은 다음과 같습니다:

    • amd64
    • arm64
    • arm
    • 386
  2. 다음 명령을 실행하여 텔레포트 아카이브를 다운로드하고 압축을 풀어 이진 파일을 설치합니다:

    curl https://cdn.teleport.dev/${TELEPORT_PKG?}-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-bin.tar.gz.sha256

    <checksum> <filename>

    curl -O https://cdn.teleport.dev/${TELEPORT_PKG?}-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-bin.tar.gz
    shasum -a 256 ${TELEPORT_PKG?}-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-bin.tar.gz

    체크섬이 일치하는지 확인

    tar -xvf ${TELEPORT_PKG?}-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-bin.tar.gz
    cd ${TELEPORT_PKG?}
    sudo ./install

    FedRAMP/FIPS 준수를 위한 텔레포트 엔터프라이즈 설치의 경우, 패키지 URL은 약간 다릅니다:

    curl https://cdn.teleport.dev/teleport-ent-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-fips-bin.tar.gz.sha256

    <checksum> <filename>

    curl -O https://cdn.teleport.dev/teleport-ent-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-fips-bin.tar.gz
    shasum -a 256 teleport-ent-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-fips-bin.tar.gz

    체크섬이 일치하는지 확인

    tar -xvf teleport-ent-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-fips-bin.tar.gz
    cd teleport-ent
    sudo ./install

브라우저에서

텔레포트 커뮤니티 에디션의 경우, 다운로드 페이지에서 최신 정보를 확인하십시오.

도커

이미지

우리는 텔레포트의 모든 버전에 대해 미리 구축된 도커 이미지를 제공합니다. 이 섹션은 사용 가능한 도커 이미지를 설명합니다.

이 이미지는 Amazon ECR Public에서 호스팅됩니다.

이미지 접미사

이 섹션에 나열된 각 이미지 이름에 대해서는 저장소 이름이나 태그에 접미사를 추가하여 이미지의 속성을 지정할 수 있습니다.

저장소 이름 내에 -distroless 접미사가 있는 이미지는 teleport 이진 파일과 런타임 종속성만 포함되며, 셸이나 유틸리티 응용 프로그램은 포함되지 않습니다. 예를 들어, 텔레포트 커뮤니티 에디션에 대한 public.ecr.aws/gravitational/teleport-distroless입니다.

저장소 이름 내에 *-distroless-debug 접미사가 있는 이미지는 텔레포트 외에 Busybox 셸 및 도구 모음을 포함하며, 배포 문제 해결 전용으로 의도됩니다. 이들은 프로덕션 사용을 위한 것이 아닙니다. 예를 들어, public.ecr.aws/gravitational/teleport-distroless-debug입니다.

*-distroless*-distroless-debug 이미지는 기본적으로 여러 아키텍처를 지원하며 (또는 지원하지 않습니다) 이미지 접미사를 요구하지 않습니다. docker pull--platform 플래그를 사용하여 이미지의 arm, arm64 또는 amd64 버전을 풀 수 있습니다.

버전 태그

이미지들은 텔레포트의 고정 버전을 가리킵니다. 이미지의 태그를 사용하여 지정할 수 있습니다.

  • 주요, 부 및 패치 버전 (예: 16.2.0 텔레포트 커뮤니티 에디션의 최신 버전에 대해서).
  • 주요 버전만, 이는 해당 주요 버전의 최신 부 및 패치 번호를 의미합니다. 예를 들어, 1616.2.0을 의미합니다.
이미지 이름문제 해결 도구 포함이미지 기반
public.ecr.aws/gravitational/teleport-ent-distroless:16.1.7아니오Distroless Debian 12
public.ecr.aws/gravitational/teleport-ent-distroless-debug:16.1.7Distroless Debian 12

테스트를 위해 우리는 항상 텔레포트 엔터프라이즈의 최신 클라우드 릴리스 버전을 사용하는 것을 권장합니다. 현재 public.ecr.aws/gravitational/teleport-ent-distroless:16.1.7입니다.

이미지 이름문제 해결 도구 포함이미지 기반
public.ecr.aws/gravitational/teleport-ent-distroless:16.2.0아니오Distroless Debian 12
public.ecr.aws/gravitational/teleport-ent-distroless-debug:16.2.0Distroless Debian 12

FIPS 빌드를 위한 다음 이미지를 제공합니다:

이미지 이름문제 해결 도구 포함이미지 기반
public.ecr.aws/gravitational/teleport-ent-fips-distroless:16.2.0아니오Distroless Debian 12
public.ecr.aws/gravitational/teleport-ent-fips-distroless-debug:16.2.0Distroless Debian 12

테스트를 위해 우리는 항상 텔레포트 엔터프라이즈의 최신 릴리스 버전을 사용하는 것을 권장합니다. 현재 public.ecr.aws/gravitational/teleport-ent-distroless:16.2.0입니다.

이미지 이름문제 해결 도구 포함이미지 기반
public.ecr.aws/gravitational/teleport-distroless:16.2.0아니오Distroless Debian 12
public.ecr.aws/gravitational/teleport-distroless-debug:16.2.0Distroless Debian 12

테스트를 위해 우리는 항상 텔레포트의 최신 릴리스 버전을 사용하는 것을 권장합니다. 현재 public.ecr.aws/gravitational/teleport-distroless:16.2.0입니다.

비 및 트롤레스 이미지와의 상호 작용

버전 15부터 텔레포트 이미지는 Google의 Distroless 이미지를 기반으로 합니다. 이러한 이미지는 셸을 포함하고 있지 않습니다.

이러한 이미지에 기반한 컨테이너에서 텔레포트 명령을 실행하려면 다음과 같은 명령을 실행하십시오:

도커 내

docker run -i my-container tctl status

쿠버네티스 내

kubectl exec -i my-pod -- tctl status

stdin을 통해 로컬 파일 전송

kubectl exec -i my-pod -- tctl create -f < my-local-file.yaml

configmap에서 텔레포트 서비스 구성 파일 검색

kubectl get configmap teleport-cluster-auth -o jsonpath="{.data['teleport\.yaml']}"

stdout을 통해 출력 검색 및 tar

kubectl exec -i my-pod -- tctl auth sign --user admin --format tls --ttl 10m --tar -o admin| tar xv -C local
ls -l local
total 24-rw------- 1 trent staff 1318 Jul 24 15:52 admin.cas-rw------- 1 trent staff 1895 Jul 24 15:52 admin.crt-rw------- 1 trent staff 1679 Jul 24 15:52 admin.key

또는 busybox sh를 통해 실행 가능한 최소 셸이 포함된 이미지의 debug 변형을 사용할 수 있습니다:

docker run -it --entrypoint="" public.ecr.aws/gravitational/teleport-distroless-debug:16.2.0 busybox sh

머신 아이디 (tbot)

우리는 텔레포트 머신 아이디와 함께 사용하기 위해 tbot 이진 파일만 포함된 축소된 비 및 트롤레스 이미지를 제공합니다.

이미지 이름FIPS 지원이미지 기반
public.ecr.aws/gravitational/tbot-distroless:16.2.0아니오Distroless Debian 12
public.ecr.aws/gravitational/tbot-fips-distroless:16.2.0Distroless Debian 12

버전 태깅은 주요 teleport-distroless 이미지와 같은 패턴을 따릅니다.

tbot 전용 이미지를 사용하는 것이 Machine ID 배포에 대해 권장됩니다. 이 이미지는 더 작아서 풀 시간이 개선되고 공격 표면이 더 작습니다. 또한, 컨테이너 환경에서 tbot 실행 경험을 개선하도록 이미지가 사용자 정의되었습니다.

자세한 내용은 쿠버네티스에서 머신 ID 배포 가이드를 참조하십시오.

도커에서 텔레포트 실행

위에서 나열된 이미지 중 하나에서 컨테이너를 실행할 때, 이 컨테이너는 teleport 이진 파일을 실행하는 것과 같다고 생각하십시오. 텔레포트 컨테이너에는 파일 시스템과 네트워크 포트에 대한 액세스가 필요합니다.

구성

텀레포트 프로세스는 기본적으로 /etc/teleport.yaml라는 로컬 파일 경로에서 구성을 읽습니다. 이 파일 경로가 텔레포트 컨테이너에 마운트되어 있는지 확인하십시오.

데이터 디렉토리

모든 텔레포트 프로세스는 기본적으로 /var/lib/teleport인 데이터 디렉토리에서 읽고 씁니다. 이 데이터 디렉토리가 텔레포트 컨테이너에 마운트되어 있는지 확인하십시오.

라이센스 파일

귀하의 텔레포트 엔터프라이즈 컨테이너가 인증 서비스를 실행하는 경우, 구성에서 지정된 경로(기본적으로 /var/lib/teleport/license.pem)에 있는 라이센스 파일에 대한 액세스를 제공해야 합니다. 텔레포트 컨테이너의 데이터 디렉토리에 이 라이센스가 존재하는지 확인하십시오.

기타 파일 경로

귀하가 텔레포트 컨테이너에 할당하는 구성 설정에 따라, 명명한 모든 파일 경로가 컨테이너에 마운트되어야 합니다.

예를 들어, 텔레포트 프록시 서비스를 컨테이너에서 실행하는 경우, TLS 자격 증명이 포함된 디렉토리를 텔레포트 컨테이너에 마운트해야 하며, 컨테이너의 구성 파일에서 다음 필드를 적절한 경로로 할당해야 합니다:

proxy_service:
  https_keypairs:
  - key_file: /my/path/key.pem
    cert_file: /my/path/cert.pem

할당하고자 하는 필드가 파일 경로를 요구하는지 여부는 텔레포트의 구성 참고를 참조하십시오.

포트

단일 텔레포트 프로세스는 여러 서비스를 실행할 수 있으며, 각 서비스는 귀하의 구성에 따라 특정 포트 집합에서 수신 대기합니다. 텔레포트 컨테이너에서 열어야 할 포트는 네트워킹 참고를 참조하십시오.

비 및 트롤레스 이미지에서의 인증서 추출

tctl auth sign으로 생성된 인증서를 비 및 트롤레스 이미지에서 실행 중인 컨테이너에서 추출하는 것은 셸 및 기타 OS 도구가 없는 경우 까다로울 수 있습니다.

가능한 경우 tsh를 사용하여 텔레포트 클러스터에 로그인하고 tctl auth sign을 로컬에서 사용하여 인증서를 생성하십시오. 이렇게 하면 작업이 귀하의 텔레포트 사용자 계정에 기록되고 귀하의 클러스터 내에서 모든 일반 텔레포트 RBAC 정책의 적용을 받게 됩니다.

이것이 불가능할 경우, tctl auth sign --tar를 사용하여 tctl auth sign으로 생성된 모든 파일을 tar 아카이브로 모아서 stdout로 직접 전송할 수 있습니다. 결과 인증서들은 컨테이너 파일 시스템에 저장되지 않습니다. 이 출력을 직접 tar로 파이프하거나 나중에 사용할 수 있도록 로컬 파일로 리다이렉션할 수 있습니다.

예를 들어:

docker exec ${TELEPORT_CONTAINER} \ tctl auth sign --user alice --format tls -o alice.local --tar | tar xv
x alice.local.crtx alice.local.keyx alice.local.cas

텔레포트 컨테이너 실행 예제

이 예제에서는 텔레포트 커뮤니티 에디션을 사용하여 로컬 도커 컨테이너에서 텔레포트 인증 서비스 및 프록시 서비스를 실행하는 방법을 보여줍니다.

이 컨테이너는 자체 서명된 인증서를 사용하므로, 이 구성을 워크스테이션 외부의 인프라를 보호하는 데 사용하지 않는 것이 좋습니다. 그러나 다른 로컬 도커 컨테이너를 결합할 수 있습니다 토큰 방법을 사용하여.

먼저, 컨테이너에 마운트할 홈 디렉토리에 디렉토리를 생성합니다. 텔레포트 컨테이너는 이 디렉토리에 구성 및 데이터를 씁니다:

mkdir -p ~/teleport/config ~/teleport/data

텔레포트 컨테이너에서 teleport configure를 실행하여 구성 파일을 생성합니다. 이는 컨테이너의 이름을 localhost로 설정하여 브라우저가 프록시 서비스의 자체 서명된 TLS 인증서를 신뢰하도록 합니다:

docker run --hostname localhost --rm \ --entrypoint=/usr/local/bin/teleport \ public.ecr.aws/gravitational/teleport-distroless:16.2.0 configure --roles=proxy,auth > ~/teleport/config/teleport.yaml

컨테이너에서 텔레포트를 시작합니다:

docker run --hostname localhost --name teleport \ -v ~/teleport/config:/etc/teleport \ -v ~/teleport/data:/var/lib/teleport \ -p 3025:3025 -p 3080:3080 \ public.ecr.aws/gravitational/teleport-distroless:16.2.0

그곳에서, 다른 터미널을 열고 귀하의 텔레포트 컨테이너의 웹 API가 의도한 대로 작동하는지 확인합니다:

curl --insecure https://localhost:3080/webapi/ping

다음과 유사한 JSON 출력을 봐야 합니다:

{
  "auth": {
    "type": "local",
    "second_factor": "otp",
    "preferred_local_mfa": "otp",
    "local": {
      "name": ""
    },
    "private_key_policy": "none",
    "device_trust_disabled": true,
    "has_motd": false
  },
  "proxy": {
    "kube": {
      "enabled": true,
      "listen_addr": "0.0.0.0:3080"
    },
    "ssh": {
      "listen_addr": "0.0.0.0:3080",
      "tunnel_listen_addr": "0.0.0.0:3080",
      "web_listen_addr": "0.0.0.0:3080"
    },
    "db": {
      "postgres_listen_addr": "0.0.0.0:3080",
      "mysql_listen_addr": "0.0.0.0:3080"
    },
    "tls_routing_enabled": true
  },
  "server_version": "12.1.5",
  "min_client_version": "11.0.0",
  "cluster_name": "localhost",
  "automatic_upgrades": false
}

탈레널 메시지 자격 증명 및 기타 보안 설정이 소개된 경우 --insecure 플래그를하여 텔레포트의 자체 서명된 인증서를 신뢰합니다. 프로덕션에서는 TLS 자격 증명 보호를 위해 신뢰할 수 있는 CA(예: Let's Encrypt)로부터 TLS 자격 증명을 제공해야 합니다.

도커에서 텔레포트 업그레이드

도커에서 텔레포트 컨테이너를 업그레이드하려면:

  1. 컨테이너의 데이터 디렉토리를 제장하십시오.
  2. 컨테이너를 중지하십시오.
  3. 데이터 디렉토리를 이전과 동일하게 마운트하여 최신 텔레포트 버전의 이미지로 새 컨테이너를 실행합니다. 데이터 디렉토리에 이전과 동일한 내용이 포함되어 있는 한, 텔레포트 컨테이너는 클러스터에 다시 가입할 필요가 없습니다.

아마존 EC2

우리는 텔레포트가 미리 설치된 amd64arm64 아마존 리눅스 2023 기반 EC2 AMI를 제공합니다.

이 이미지는 주로 우리의 참조 Terraform 코드를 사용하여 텔레포트 클러스터를 배포하는 것을 목표로 합니다.

자세한 사용 사례 및 예시들은 AWS 단일 인스턴스 배포AWS에서 Terraform을 사용하여 고가용성 모드에서 텔레포트 엔터프라이즈 실행 가이드를 참조하십시오.

이 AMI를 참조 Terraform 이외의 용도로 사용하려면 EC2 인스턴스의 /etc/teleport.d/conf 파일에 설정 변수를 설정하여 텔레포트 설치를 구성할 수 있습니다. 사용 가능한 구성 옵션 목록은 스타터 클러스터 구성 템플릿을 참조하십시오.

이미지 이름은 모두 빌드 타임스탬프를 포함하고 있으며(표의 $TIMESTAMP로 표시됨), 검색 용이성을 위해 태그가 붙어 있습니다.

이미지 이름에디션아키텍처FIPS 지원AMI 태그
teleport-oss-16.2.0-x86_64-$TIMESTAMPOSSamd64아니오TeleportVersion: 16.2.0, TeleportEdition: oss, TeleportFipsEnabled: false
teleport-oss-16.2.0-arm64-$TIMESTAMPOSSarm64아니오TeleportVersion: 16.2.0, TeleportEdition: oss, TeleportFipsEnabled: false
teleport-ent-16.2.0-x86_64-$TIMESTAMPenterpriseamd64아니오TeleportVersion: 16.2.0, TeleportEdition: ent, TeleportFipsEnabled: false
teleport-ent-16.2.0-arm64-$TIMESTAMPEnterprisearm64아니오TeleportVersion: 16.2.0, TeleportEdition: ent, TeleportFipsEnabled: false
teleport-ent-16.2.0-x86_64-fips-$TIMESTAMPenterpriseamd64TeleportVersion: 16.2.0, TeleportEdition: ent, TeleportFipsEnabled: true
teleport-ent-16.2.0-arm64-fips-$TIMESTAMPenterprisearm64TeleportVersion: 16.2.0, TeleportEdition: ent, TeleportFipsEnabled: true

이 AMI는 AWS 계정 ID 146628656107에서 소유됩니다.

모든 이미지는 아마존 리눅스 2023을 기반으로 하며, 아마존 EC2 이미지 빌더의 STIG 하드닝 컴포넌트를 사용하여 하드닝되었습니다.

텔레포트 AMI는 모든 비-opt-in AWS 리전에서 자동으로 게시됩니다.

헬름

Teleport Helm 리포지토리를 설정하세요. Teleport Helm 리포지토리에 호스팅된 차트를 설치하도록 Helm을 허용하세요:

helm repo add teleport https://charts.releases.teleport.dev

원격 리포지토리의 차트 캐시를 업데이트하여 모든 사용 가능한 릴리즈로 업그레이드할 수 있습니다:

helm repo update

설치를 위한 두 가지 차트가 있습니다. 각 차트를 사용하는 방법에 대한 안내서를 참조하십시오.

차트포함된 서비스값 참조
teleport-cluster인증 서비스
프록시 서비스
사용자 정의 구성을 사용하는 경우 다른 텔레포트 서비스
참조
teleport-kube-agent쿠버네티스 서비스
응용 프로그램 서비스
데이터베이스 서비스
디스커버리 서비스
Jamf 서비스
참조

macOS

다음 중 하나의 .pkg 설치 프로그램을 macOS용으로 다운로드할 수 있습니다:

링크바이너리
teleport-ent-16.1.7.pkgteleport
tctl
tsh
tbot
tsh-16.1.7.pkgtsh

명령줄에서도 설치 프로그램을 가져올 수 있습니다:

curl -O https://cdn.teleport.dev/teleport-ent-16.1.7.pkg

Macintosh HD에 설치

sudo installer -pkg teleport-ent-16.1.7.pkg -target /
비밀번호:installer: 패키지 이름은 teleport-ent-16.1.7입니다installer: 기본 경로에서 업그레이드 중입니다 /installer: 업그레이드가 성공했습니다.
which teleport
/usr/local/bin/teleport

다음 중 하나의 .pkg 설치 프로그램을 macOS용으로 다운로드할 수 있습니다:

링크바이너리
teleport-ent-16.2.0.pkgteleport
tctl
tsh
tbot
tsh-16.2.0.pkgtsh

명령줄에서 설치 프로그램을 가져올 수도 있습니다:

curl -O https://cdn.teleport.dev/teleport-ent-16.2.0.pkg

Macintosh HD에 설치

sudo installer -pkg teleport-ent-16.2.0.pkg -target /
비밀번호:installer: 패키지 이름은 teleport-ent-16.2.0입니다.installer: 기본 경로에서 업그레이드 중입니다 /installer: 업그레이드가 성공했습니다.
which teleport
/usr/local/bin/teleport

다음 .pkg 설치 프로그램 중 하나를 다운로드할 수 있습니다:

링크이진 파일
teleport-16.2.0.pkgteleport
tctl
tsh
tbot
tsh-16.2.0.pkgtsh

명령줄을 통해 설치 프로그램을 가져올 수도 있습니다:

curl -O https://cdn.teleport.dev/teleport-16.2.0.pkg

Macintosh HD에 설치됩니다

sudo installer -pkg teleport-16.2.0.pkg -target /

비밀번호:

installer: 패키지 이름은 teleport-16.2.0입니다.

installer: /에 대한 업그레이드입니다.

installer: 업그레이드가 성공했습니다.

which teleport

/usr/local/bin/teleport

우리는 텔레포트를 설치하기 위해 Homebrew를 사용하는 것을 권장하지 않습니다. Homebrew의 텔레포트 패키지는 텔레포트에서 유지 관리하지 않으며, 우리는 그 신뢰성이나 보안을 보장할 수 없습니다.

윈도우 (tshtctl 클라이언트만 해당)

대부분의 tsh 기능은 Windows 10 1607 이상에서 지원됩니다. tsh ssh 명령은 cmd.exe, PowerShell 및 Windows Terminal에서 실행할 수 있습니다.

Windows에 tshtctl을 설치하려면, 다음 명령을 PowerShell에서 실행하세요 (이 명령은 cmd.exe에서는 작동하지 않습니다):

원하는 텔레포트 버전 설정

$TELEPORT_VERSION="16.1.7"

원하는 텔레포트 버전 설정

$TELEPORT_VERSION="16.2.0"

원하는 텔레포트 버전 설정

$TELEPORT_VERSION="16.2.0"
# TLS 수준을 TLS 1.2로 설정합니다(Windows Server 2016 및 이전 버전에서 필요). $ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 # Windows tsh 패키지에 대한 예상 체크섬을 가져옵니다. $ $Resp = Invoke-WebRequest https://cdn.teleport.dev/teleport-v$TELEPORT_VERSION-windows-amd64-bin.zip.sha256 # PowerShell은 기본적으로 응답 내용을 이진 표현으로 반환하므로 # 이를 문자열로 변환해야 합니다. $ [System.Text.Encoding]::UTF8.getstring($Resp.Content) # <체크섬> <파일 이름> $ Invoke-WebRequest -OutFile teleport-v$TELEPORT_VERSION-windows-amd64-bin.zip -Uri https://cdn.teleport.dev/teleport-v$TELEPORT_VERSION-windows-amd64-bin.zip $ certUtil -hashfile teleport-v$TELEPORT_VERSION-windows-amd64-bin.zip SHA256 # teleport-v$TELEPORT_VERSION-windows-amd64-bin.zip의 SHA256 해시: # <체크섬> # CertUtil: -hashfile 명령이 성공적으로 완료되었습니다.

체크섬이 일치하는지 확인한 후, 아카이브를 추출할 수 있습니다.
실행 파일은 teleport-v$TELEPORT_VERSION-windows-amd64-bin\에 있습니다.

$ Expand-Archive teleport-v$TELEPORT_VERSION-windows-amd64-bin.zip $ cd teleport-v$TELEPORT_VERSION-windows-amd64-bin $ .\tsh.exe version Teleport v$TELEPORT_VERSION git:v$TELEPORT_VERSION go1.22 $ .\tctl.exe version Teleport v$TELEPORT_VERSION git:v$TELEPORT_VERSION go1.22

tsh.exetctl.exe를 PATH에 이동해야 합니다.

Note

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

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

소스에서 빌드하기

텔레포트는 Go로 작성되었으며, 현재 go v1.22 이상을 필요로 합니다. 소스에서 빌드하는 데 대한 자세한 지침은 README를 참조하십시오.

체크섬

텔레포트 이진 파일의 무결성을 확인하려면 SHA256 체크섬이 모든 다운로드를 위해 제공됩니다. 다운로드 페이지에서 확인하십시오.

자동화된 시스템을 통해 텔레포트를 다운로드하는 경우, 다운로드 링크에 .sha256을 추가하여 프로그램적으로 체크섬을 얻을 수 있습니다. 이는 설치 예제에서 보여준 방법입니다.

export version=v16.2.0

'darwin' 'linux' 또는 'windows'

export os=linux

linux에서 '386' 'arm' 또는 모든 배포판을 위한 'amd64'

export arch=amd64
curl https://cdn.teleport.dev/teleport-$version-$os-$arch-bin.tar.gz.sha256

<checksum> <filename>

텔레포트 제거

언제든지 텔레포트를 제거하기 원하시면, 텔레포트 제거하기 문서를 참조하십시오.

다음 단계

이제 텔레포트를 설치하는 방법을 알았으니, 모든 인프라에 대한 접근을 활성화할 수 있습니다. 시작하십시오:

Teleport 원문 보기