使用 tmate 分享你的终端会话

简介: 不久前,我们写过一篇关于 teleconsole 的介绍,该工具可用于快速分享终端给任何人(任何你信任的人)。今天我们要聊一聊另一款类似的应用,名叫 tmate。 tmate 有什么用?它可以让你在需要帮助时向你的朋友们求助。

不久前,我们写过一篇关于 teleconsole 的介绍,该工具可用于快速分享终端给任何人(任何你信任的人)。今天我们要聊一聊另一款类似的应用,名叫 tmate

tmate 有什么用?它可以让你在需要帮助时向你的朋友们求助。

什么是 tmate?

tmate 的意思是 teammates,它是 tmux 的一个分支,并且使用相同的配置信息(例如快捷键配置,配色方案等)。它是一个终端多路复用器,同时具有即时分享终端的能力。它允许在单个屏幕中创建并操控多个终端,同时这些终端还能与其他同事分享。

你可以分离会话,让作业在后台运行,然后在想要查看状态时重新连接会话。tmate 提供了一个即时配对的方案,让你可以与一个或多个队友共享一个终端。

在屏幕的地步有一个状态栏,显示了当前会话的一些诸如 ssh 命令之类的共享信息。

tmate 是怎么工作的?

  • 运行 tmate 时,会通过 libssh 在后台创建一个连接到 tmate.io (由 tmate 开发者维护的后台服务器)的 ssh 连接。
  • tmate.io 服务器的 ssh 密钥通过 DH 交换进行校验。
  • 客户端通过本地 ssh 密钥进行认证。
  • 连接创建后,本地 tmux 服务器会生成一个 150 位(不可猜测的随机字符)会话令牌。
  • 队友能通过用户提供的 SSH 会话 ID 连接到 tmate.io。

使用 tmate 的必备条件

由于 tmate.io 服务器需要通过本地 ssh 密钥来认证客户机,因此其中一个必备条件就是生成 SSH 密钥 key。 记住,每个系统都要有自己的 SSH 密钥。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/magi/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/magi/.ssh/id_rsa.
Your public key has been saved in /home/magi/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:3ima5FuwKbWyyyNrlR/DeBucoyRfdOtlUmb5D214NC8 magi@magi-VirtualBox
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|           .     |
|      . . =   o  |
|     *ooS= . + o |
|  . =.@*o.o.+ E .|
|   =o==B++o  = . |
|  o.+*o+..    .  |
| ..o+o=.         |
+----[SHA256]-----+

如何安装 tmate

tmate 已经包含在某些发行版的官方仓库中,可以通过包管理器来安装。

对于 Debian/Ubuntu,可以使用 apt-get 命令或者 apt 命令来安装。

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:tmate.io/archive
$ sudo apt-get update
$ sudo apt-get install tmate

你也可以从官方仓库中安装 tmate。

$ sudo apt-get install tmate

对于 Fedora,使用 DNF 命令来安装。

$ sudo dnf install tmate

如何使用 tmate

成功安装后,打开终端然后输入下面命令,就会打开一个新的会话,在屏幕底部,你能看到 SSH 会话的 ID,显示效果就像运行 tmux 一样。

$ tmate

要注意的是,SSH 会话 ID 会在几秒后消失,不过不要紧,你可以通过下面命令获取到这些详细信息。

$ tmate show-messages

tmate 的 show-messages 命令会显示 tmate 的日志信息,其中包含了该 ssh 连接内容。

$ tmate show-messages
Wed Dec 6 10:27:58 2017 [tmate] Connecting to ssh.tmate.io...
Wed Dec 6 10:27:59 2017 [tmate] Note: clear your terminal before sharing readonly access
Wed Dec 6 10:27:59 2017 [tmate] web session read only: https://tmate.io/t/ro-Jck9ufuVN89c7DPK2FFkGQMxV
Wed Dec 6 10:27:59 2017 [tmate] ssh session read only: ssh ro-Jck9ufuVN89c7DPK2FFkGQMxV@sg2.tmate.io
Wed Dec 6 10:27:59 2017 [tmate] web session: https://tmate.io/t/3zSi6McGj5rkeoWIKMgumWrGr
Wed Dec 6 10:27:59 2017 [tmate] ssh session: ssh 3zSi6McGj5rkeoWIKMgumWrGr@sg2.tmate.io

现在,分享你的 SSH 会话 ID 给你的朋友或同事从而允许他们观看终端会话。除了 SSH 会话 ID 以外,你也可以分享 web URL。

另外你还可以选择分享的是只读会话还是可读写会话。

如何通过 SSH 连接会话

只需要在终端上运行你从朋友那得到的 SSH 终端 ID 就行了。类似下面这样。

$ ssh session: ssh 3zSi6McGj5rkeoWIKMgumWrGr@sg2.tmate.io

如何通过 Web URL 连接会话

打开浏览器然后访问朋友给你的 URL 就行了。像下面这样。

只需要输入 exit 就能退出会话了。

[Source System Output]
[exited]
[Remote System Output]
[server exited]
Connection to sg2.tmate.io closed by remote host
Connection to sg2.tmate.io closed

本文参考: https://www.2daygeek.com/ 作者:[Magesh Maruthamuthu]


原文发布时间:2017-12-06
本文来自云栖社区合作伙伴“ Debian社区”,了解相关信息可以关注“ Debian社区”。
相关文章
|
11月前
|
安全 Linux 虚拟化
|
存储 JSON 自然语言处理
数据标注工具 doccano | 命名实体识别(Named Entity Recognition,简称NER)
标注数据保存在同一个文本文件中,每条样例占一行且存储为json格式,其包含以下字段 • id: 样本在数据集中的唯一标识ID。 • text: 原始文本数据。 • entities: 数据中包含的Span标签,每个Span标签包含四个字段: • id: Span在数据集中的唯一标识ID。 • start_offset: Span的起始token在文本中的下标。 • end_offset: Span的结束token在文本中下标的下一个位置。 • label: Span类型。 • relations: 数据中包含的Relation标签,每个Relation标签包含四个字段: • id: (Span
751 0
|
JSON Java Shell
Dockerfile中RUN、CMD、ENTRYPOINT、SHELL命令的区别
理解这些指令的差异和应用场景,有助于构建高效、灵活且易于管理的Docker镜像。在实际应用中,根据需要选择合适的指令,可以有效地控制镜像构建和容器运行的行为。
678 0
|
SQL 关系型数据库 MySQL
使用OceanBase进行大规模数据迁移的最佳实践
【8月更文第31天】随着业务的不断扩展,数据迁移成为了企业日常运营中不可避免的任务之一。对于那些正在从传统的数据库系统向分布式数据库系统过渡的企业来说,数据迁移尤为重要。OceanBase 是一个由阿里巴巴集团开发的高性能分布式关系数据库,它以其高可用性、水平扩展能力和成本效益而闻名。本文将探讨如何使用 OceanBase 进行大规模数据迁移,并提供相关的最佳实践和代码示例。
1032 1
|
人工智能 物联网 测试技术
以小博大,微软开源27亿参数模型Phi-2,魔搭最佳实践来啦!
近日,微软公布了在 Microsoft Ignite 2023大会上宣布开源的 Phi-2 模型的更多细节,“打破传统语言模型缩放定律,可PK比自己大25倍的模型”、“以小博大”等评价,让Phi-2一时间在开源社区中引发关注。
|
算法 数据可视化 计算机视觉
论文阅读笔记 | 目标检测算法——Generalized Focal Lossv1,v2
论文阅读笔记 | 目标检测算法——Generalized Focal Lossv1,v2
1542 0
论文阅读笔记 | 目标检测算法——Generalized Focal Lossv1,v2
|
存储 人工智能 安全
CPFS深度解析:并行文件存储加速AI创新
在生成式AI的大潮中,并行文件系统作为高性能数据底座,为AI算力提供高吞吐、低延迟的数据存储服务。在本话题中,我们将介绍阿里云并行文件存储CPFS针对AI智算场景而提供的产品能力演进与更新,深入讲解在性能、成本、稳定、安全等方面的技术创新。
961 0
|
Linux
linux驱动层输出dev_dbg打印信息
linux驱动层输出dev_dbg打印信息
354 0
|
监控 数据挖掘 大数据
Linux中的nohup命令:让你的任务在后台持久运行
**Linux的`nohup`命令让任务在后台持续运行,即使终端关闭。它创建不受终端影响的新进程,常用于长时间任务,如数据处理。`nohup`将输出重定向至`nohup.out`,可使用`-p`选项避免此行为。示例:`nohup ./script.sh > output.log 2>&1 &`。记得检查输出、重定向、记录命令、监控任务并使用日志管理工具。**
|
网络协议 数据库 数据安全/隐私保护