tmate命令行分享

作者:高天阳

邮箱:13683265113@163.com

更改历史

* 2018-10-11        高天阳    细化内容
* 2017-08-06        高天阳    初始化文档

1 简介与特点

1.1 tmate是什么

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

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

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

1.2 tmate工作原理

  • 运行tmate时,会通过libssh在后台创建一个连接到tmate.io(由tmate开发者维护的后台服务器)的ssh连接。

  • tmate.io服务器的ssh密钥通过DH交换进行校验。

  • 客户端通过本地ssh密钥进行认证。

  • 连接创建后,本地tmux服务器会生成一个150位(不可猜测的随机字符)会话令牌。

  • 队友能通过用户提供的SSH会话ID连接到tmate.io

2 安装与使用

2.1 前期条件

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

2.2 安装

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

对于Debian/Ubuntu,可以使用 APT-GET命令 或者APT命令to来安装。

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

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

对于基于Arch Linux的系统,使用Yaourt命令Packer命令来从AUR仓库中安装。

对于openSUSE,使用Zypper命令 来安装。

2.3 使用

2.3.1 创建

成功安装后,打开终端然后输入下面命令,就会打开一个新的会话,在屏幕底部,你能看到SSH会话的ID

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

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

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

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

2.3.2 SSH连接

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

2.3.3 Web URL连接

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

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

参考资料

Last updated

Was this helpful?