Teleport项目中的tsh命令行工具使用指南

Teleport项目中的tsh命令行工具使用指南

teleport Protect access to all of your infrastructure. teleport 项目地址: https://gitcode.com/gh_mirrors/tel/teleport

什么是tsh?

tsh是Teleport项目提供的命令行客户端工具,全称为Teleport Shell。它允许用户通过命令行界面与Teleport集群进行交互,执行SSH登录、文件传输、端口转发等操作。tsh的设计目标是兼容传统SSH工作流,同时提供更强大的安全特性和集群管理功能。

核心功能概述

tsh提供了以下主要功能:

  1. 集群认证:通过tsh login获取访问集群的临时证书
  2. 节点管理:列出集群中的可用节点(tsh ls)
  3. 安全连接:建立SSH会话到集群节点(tsh ssh)
  4. 文件传输:在本地和远程节点间安全传输文件
  5. 会话共享:与同事共享或加入现有的SSH会话
  6. 会话记录:查看和重放记录的交互式会话

安装与配置

安装tsh

建议安装与Teleport集群主版本相匹配的tsh版本。安装方法根据操作系统不同而有所差异:

  • Linux/macOS:可通过包管理器或直接下载二进制文件
  • Windows:支持通过Chocolatey安装或直接下载exe文件

安装完成后,建议将tsh添加到系统PATH环境变量中以便全局访问。

基本配置

tsh的配置文件存储在~/.tsh目录下,包括用户证书、集群配置等信息。首次使用前无需特别配置,通过tsh login命令会自动创建必要文件。

用户身份与认证

登录集群

使用tsh login命令获取访问证书:

# 基本登录命令
tsh login --proxy=teleport.example.com

# 指定用户(Teleport用户而非系统用户)
tsh login --proxy=teleport.example.com --user=joe

登录成功后,证书默认有效期为12小时,期间可无需重复认证。

认证方式支持

Teleport支持多种认证方式:

  1. 本地认证:使用Teleport内置用户系统

    tsh login --auth=local --user=admin
    
  2. SSO认证:通过GitHub等第三方身份提供商

    tsh login --auth=github
    
  3. 无浏览器模式:适用于自动化场景

    tsh login --browser=none
    

证书管理

查看当前认证状态:

tsh status

登出并清除证书:

tsh logout

集群节点管理

列出可用节点

tsh ls

支持按标签过滤:

tsh ls os=ubuntu

节点标签系统

Teleport节点可以附加各种标签(如os=ubuntu),这些标签可用于:

  1. 节点筛选
  2. 基于属性的访问控制
  3. 自动化任务的目标选择

SSH功能详解

基本SSH连接

tsh ssh user@node

tsh ssh兼容大多数OpenSSH参数:

tsh ssh -o ForwardAgent=yes user@node
tsh ssh -o AddKeysToAgent=yes user@node

端口转发

本地端口转发示例:

tsh ssh -L 5000:internal.service:80 node

此命令将在本地5000端口和内网服务的80端口间建立隧道。

跳板功能

通过ProxyJump模式连接:

tsh ssh -J proxy.example.com target-node

高级用法

自动化场景证书

对于CI/CD等自动化场景,可生成长期有效的证书:

tctl auth sign --ttl=24h --user=jenkins --out=jenkins.pem

然后使用证书文件连接:

tsh ssh -i jenkins.pem user@node

身份文件导出

将证书导出为OpenSSH兼容格式:

tsh login --out=user --format=openssh

会生成user(私钥)和user-cert.pub(证书)两个文件。

最佳实践

  1. 别名设置:将tsh映射为ssh命令

    alias ssh="tsh ssh"
    
  2. 证书管理:定期检查证书有效期

    tsh status
    
  3. 安全建议:自动化场景使用最小权限原则

  4. 网络配置:了解集群的代理端口设置

常见问题解答

Q:为什么看不到任何节点? A:可能原因包括:

  • 节点未正确注册到集群
  • 当前用户没有访问权限
  • 网络连接问题

Q:如何调试连接问题? A:可添加-d参数开启调试模式:

tsh ssh -d user@node

Q:证书过期后怎么办? A:重新执行tsh login获取新证书

通过掌握tsh工具,您可以安全高效地管理Teleport集群中的各种资源,同时保持与传统SSH工具的兼容性。

teleport Protect access to all of your infrastructure. teleport 项目地址: https://gitcode.com/gh_mirrors/tel/teleport

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沈宝彤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值