Teleport为基础设施提供连接、身份验证、访问控制和审计功能。
您可以使用Teleport来:
Teleport支持SSH、Kubernetes、数据库、RDP、云控制台、内部Web服务、Git仓库和模型上下文协议(MCP)服务器。
Teleport 快速入门 Teleport 架构 参考指南 FAQ
Teleport包含身份感知访问代理、颁发短期证书的CA、统一访问控制系统以及用于访问防火墙后资源的隧道系统。
Teleport是一个单一的Go二进制文件,可与多种协议和云服务集成,包括
您可以将Teleport设置为Linux守护进程或Kubernetes部署。
Teleport专注于基础设施安全的最佳实践,包括:
Teleport使用Go加密。它与OpenSSH、sshd服务器、ssh客户端、Kubernetes集群等完全兼容。
| 项目链接 | 描述 |
|---|---|
| Teleport Website | 项目官方网站。 |
| Documentation | 管理员指南、用户手册等。 |
| Features | 探索Teleport的完整功能列表。 |
| Blog | 我们的博客,发布Teleport新闻和有用文章。 |
| Forum | 提出设置问题或发布教程、反馈或想法。 |
| Developer Tools | 数十种免费的基于浏览器的工具,用于代码处理、加密、数据转换等。 |
| Teleport Academy | 操作指南、最佳实践以及深入探讨SSH、Kubernetes、MCP等主题。 |
| Slack | 需要设置帮助?在我们的Slack频道中联系我们。 |
| Cloud & Self-Hosted | Teleport Enterprise是一种云托管选项,适用于需要轻松安全地访问其计算环境的团队。 |
在Rackspace共事期间,Teleport的创建者注意到大多数云用户在设置和配置基础设施安全方面存在困难。许多为此设计的流行工具难以理解,并且在现代分布式计算基础设施中维护成本高昂。
我们决定构建一个易于使用、理解和扩展的解决方案。让您所有服务器的实时状态就像在同一个房间里一样,仿佛被神奇地传送过来。于是,Teleport诞生了!
如今,从爱好者到超大规模企业,都信任Teleport来简化云CLI和控制台、Kubernetes集群、SSH服务器、数据库、内部Web应用以及AI代理使用的模型上下文协议(MCP)的安全性。
了解更多关于Teleport和我们的历史
我们致力于使Teleport易于采用和贡献,首先提供清晰全面的文档。
如果您有问题、正在探索想法或想要验证某些内容,请从GitHub Discussion开始。讨论帮助我们回答问题、探索用例,并共同决定是否应将某些内容转化为错误报告或功能请求。
在Teleport Discussions中发起对话 这是提问、分享想法和获取帮助的最佳场所。我们的工程师积极参与其中,当有明确、可操作的后续步骤时,讨论可以升级为问题。 在Teleport Discussions中发起对话 这是提问、分享想法和获取帮助的最佳场所。我们的工程师积极参与其中,当有明确、可操作的后续步骤时,讨论可以升级为问题。
问题用于已确认的错误和定义明确的功能请求 如果某事物已被确认为错误或增强功能,欢迎提交问题。如有疑问,请先发起讨论,我们将帮助指导。 问题用于已确认的错误和定义明确的功能请求 如果某事物已被确认为错误或增强功能,欢迎提交问题。如有疑问,请先发起讨论,我们将帮助指导。
企业版和POC支持 如果您正在评估Teleport Enterprise或在POC期间需要更快速的支持,我们可以设置专用的Slack频道。您可以通过我们的网站联系我们开始。 企业版和POC支持 如果您正在评估Teleport Enterprise或在POC期间需要更快速的支持,我们可以设置专用的Slack频道。您可以通过我们的网站联系我们开始。
要设置单实例Teleport集群,请遵循我们的快速入门指南。然后,您可以将服务器、Kubernetes集群和其他基础设施注册到您的Teleport集群。
您也可以开始使用Teleport Enterprise Cloud,这是一种托管的Teleport部署,可更轻松地实现对基础设施的安全访问。
注册Teleport Enterprise Cloud免费试用,并按照本指南注册您的第一台服务器。
如果您希望在Docker容器内部署Teleport,请参见安装指南。
要在本地运行完整的测试套件,请参见测试依赖项列表
teleport仓库包含Teleport守护进程二进制文件(用Go编写)和用TypeScript编写的Web UI。
使用Docker进行构建通常最为简便,因为它能确保构建所需的所有工具都可用。要执行Docker化构建,请确保已安装并运行Docker,然后执行:
make -C build.assets build-binaries
此命令将构建与主机架构匹配的Linux二进制文件。不支持交叉编译到不同的目标架构。
从源代码构建Teleport需要以下依赖项。为获得最大兼容性,请使用build.assets/versions.mk中列出的版本安装这些依赖项:
有关macOS上开发环境设置的示例,请参见这些说明。
[!IMPORTANT]
- Go编译器对内存量较为敏感:编译Teleport至少需要1GB虚拟内存。没有交换空间的512MB实例无法正常工作。
- 这将构建Teleport的最新版本。
git clone https://github.com/gravitational/teleport.git
cd teleport
make full
默认情况下,tsh会动态链接到libfido2,以支持开发环境,前提是能够找到该库:
$ brew install libfido2 pkg-config # 替换为您选择的包管理器
$ make build/tsh
> libfido2 found, setting FIDO2=dynamic
> (...)
发布版二进制文件会静态链接到libfido2。您可以使用FIDO2变量切换链接模式:
make build/tsh FIDO2=dynamic # 动态链接
make build/tsh FIDO2=static # 静态链接,如需简单设置,请使用`make enter`
# 或`build.assets/macos/build-fido2-macos.sh`。
make build/tsh FIDO2=off # 完全不链接libfido2
支持Touch ID的tsh构建需要访问Apple开发者账户。如果您是Teleport维护者,请向团队申请访问权限。
如果构建成功,安装程序会将二进制文件放置在build目录中。
启动前,请创建默认数据目录:
sudo mkdir -p -m0700 /var/lib/teleport
sudo chown $USER /var/lib/teleport
为加快开发过程,您可以使用CompileDaemon运行Teleport。它会构建并运行Teleport二进制文件,然后在任何Go源文件更改时重新构建并重启。
go install github.com/githubnemo/CompileDaemon@latest
注意:我们使用go install而非建议的go get,因为我们不希望CompileDaemon成为项目的依赖项。
make teleport-hot-reload
默认情况下,这会运行teleport start命令。如果您想自定义命令(例如指定自定义配置文件位置),可以使用TELEPORT_ARGS参数:
make teleport-hot-reload TELEPORT_ARGS='start --config=/path/to/config.yaml'
注意:如果修改了任何Protocol Buffers文件,仍需运行make grpc以重新生成Go源代码;重新生成这些源代码会进而促使CompileDaemon重新构建并重启Teleport。
Teleport Web UI位于web目录中。
要重新构建Teleport UI包,请运行以下命令:
make docker-ui
然后您可以用新生成的/dist文件夹中的文件替换Teleport Web UI文件。
要实现Web UI的快速迭代,您可以运行本地Web开发服务器。
您还可以让Teleport从源目录加载Web UI资源。要启用此行为,请设置环境变量DEBUG=1并使用默认目标重新构建:
# 以开发模式运行Teleport单节点集群:
DEBUG=1 ./build/teleport start -d
保持服务器在此模式下运行,并在/dist目录中进行UI更改。有关如何更新Web UI的说明,请阅读web目录下的README。
所有依赖项均使用Go模块管理。以下是一些常见任务的说明:
最新版本:
go get github.com/new/dependency
并更新源代码以使用此依赖项。
要获取特定版本,请改用go get github.com/new/dependency@version。
go get github.com/new/dependency@version
go get -u github.com/new/dependency
go get -u all
为什么导入了特定包?
go mod why $pkgname
为什么导入了特定模块?
go mod why -m $modname
为什么导入了特定版本的模块?
go mod graph | grep $modname
Teleport以多种形式分发,具有不同的许可含义。
Teleport API模块(此仓库中/api目录下的所有代码)采用Apache 2.0许可证。
此仓库中其余源代码采用GNU Affero General Public License许可证。从源代码编译Teleport的用户必须遵守此许可证的条款。
在[***] Community Edition构建版本采用修改后的Apache 2.0许可证。
Teleport 可保护对广泛基础设施资源的访问,包括 Linux 服务器、Windows 桌面、Kubernetes 集群、数据库、内部 Web 应用程序、云提供商 API 和控制台(如 AWS、Azure 和 GCP),以及 AI 代理使用的模型上下文协议(MCP)服务器。
teleport 仓库包含 Teleport 守护进程二进制文件(使用 Go 编写)和一个使用 Javascript 编写的 Web UI(位于 webassets/ 目录中的 git 子模块)。
如果您打算构建并部署到生产环境中,应使用已发布的标签。默认分支 master 是即将发布的主要版本的当前开发分支。获取 [***] 上列出的最新发布标签,然后在 git clone 中使用该标签。例如,git clone https://github.com/gravitational/teleport.git -b v16.0.0 将获取 v16.0.0 版本。
使用 Docker 构建通常是最简单的方式,它确保构建所需的所有工具都可用。要执行 Docker 化构建,请确保已安装并运行 Docker,然后执行:
make -C build.assets build-binaries
确保已安装正确版本的必要依赖项:
Go 版本来自 https://github.com/gravitational/teleport/blob/master/go.mod#L3Rust 和 Cargo 版本(搜索 RUST_VERSION)tsh 版本
10.x,需要在本地安装libfido和openssl 1.1
pnpm。如果已安装 Node.js,运行 corepack enable pnpm 即可使用 pnpm。make docker-ui 替代。Rust 和 Cargo 版本(搜索 RUST_VERSION)。WASM_PACK_VERSION)。wasm-opt)。可通过运行 which wasm-opt 检查系统是否已安装。如未安装,可通过 apt-get install binaryen(适用于基于 Debian 的 Linux)安装。在其他平台上,wasm-pack 会自动安装此工具。有关 Mac 上开发环境设置的示例,请参见 这些说明。
[!IMPORTANT]
- Go 编译器对内存量较为敏感:编译 Teleport 至少需要 1GB 虚拟内存。没有交换空间的 512MB 实例 无法 正常工作。
- 这将构建 Teleport 的最新版本,无论 其是否稳定。如果您想构建最新的稳定版本,请在执行构建 之前 运行
git checkout和git submodule update --recursive切换到相应的标签(例如,运行git checkout v8.0.0)。
获取源代码
git clone https://github.com/gravitational/teleport.git
cd teleport
执行构建
make full
构建启用 Apple TouchID 支持的 tsh:
[!IMPORTANT]
启用 Touch ID 支持的
tsh二进制文件仅在使用 Teleport 的 Apple Developer ID 签名并经过 Apple 公证的情况下才能正常工作。如果您是 Teleport 维护者,请向团队申请访问权限。
make build/tsh TOUCHID=yes
构建带 libfido 的 tsh:
make build/tsh FIDO2=dynamic
homebrew 安装 libfido 和 openssl 3 后:export PKG_CONFIG_PATH="$(brew --prefix openssl@3)/lib/pkgconfig"
make build/tsh FIDO2=dynamic
如果构建成功,安装程序会将二进制文件放置在 build 目录中。
启动前,创建默认数据目录:
sudo mkdir -p -m0700 /var/lib/teleport
sudo chown $USER /var/lib/teleport
为加快开发过程,您可以使用 https://github.com/githubnemo/CompileDaemon 运行 Teleport。它将构建并运行 Teleport 二进制文件,然后在任何 Go 源文件更改时重新构建并重启。
go install github.com/githubnemo/CompileDaemon@latest
注意,我们使用 go install 而非建议的 go get,因为我们不希望 CompileDaemon 成为项目的依赖项。
make teleport-hot-reload
默认情况下,这会运行 teleport start 命令。如果您想自定义命令(例如指定自定义配置文件路径),可以使用 TELEPORT_ARGS 参数:
make teleport-hot-reload TELEPORT_ARGS='start --config=/path/to/config.yaml'
注意,如果修改了任何 Protocol Buffers 文件,仍需运行 make grpc 以重新生成 Go 源代码;这些源代码的重新生成会触发 CompileDaemon 重新构建并重启 Teleport。
Teleport 以多种形式分发,具有不同的许可含义。
Teleport API 模块(本仓库中 /api 目录下的所有代码)采用 Apache 2.0 许可证。
本仓库中其余源代码采用 GNU Affero General Public License。从源代码编译 Teleport 的用户必须遵守此许可证的条款。
在 [***] 上分发的 Teleport Community Edition 构建版本采用 修改后的 Apache 2.0 许可证。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务