千家信息网

终端共享神器Tmate怎么用

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章给大家分享的是有关终端共享神器Tmate怎么用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在 Unix/Linux 上工作,最
千家信息网最后更新 2026年11月02日终端共享神器Tmate怎么用

本篇文章给大家分享的是有关终端共享神器Tmate怎么用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

在 Unix/Linux 上工作,最常用的就是 Terminal。那么,如何将你的 Terminal 共享给别人一起协同工作(你帮助别人解决问题或者请别人帮助你解决问题)呢?很简单,使用终端共享神器 tmate。

1. 刚性需求

绝大多数人都不是万能的,总有需要他人现场指导或提供帮助的时候。那么,在无法面对面交谈的时候(尤其是在新冠病毒肆虐的特殊时期),把你的终端 (Terminal) 共享出去,就可以实现即时且所见即所得的 1:1 协助。同样地,基于 Terminal 的结对编程或 Code Review 也迫切需要终端共享。

2. 基本流程

2.1 安装 tmate

$ sudo dnf install tmate # <<< Fedora  $ sudo yum install tmate # <<< CentOS  $ sudo apt install tmate # <<< Ubuntu

2.2 启动 tmate

假定 A 现在需要 B 的帮助,于是,A 在他的终端 (Terminal) 上键入:

A$ tmate

然后就可以看到类似下图的界面:

现在 A 通过即时通讯软件(如 IRC)将 "ssh session:" 后面的那串消息 "ssh 3vRvL79HMtjmBetF37REVvU4z@sfo2.tmate.io" 发送给B,然后等待 B 的连接。

注意:如果 A 没有 SSH key ,需要事先创建一个,命令如下:

A$ ssh-keygen

2.3 通过 ssh 进行连接

B 在其终端输入:

B$ ssh 3vRvL79HMtjmBetF37REVvU4z@sfo2.tmate.io

然后 B 和 A 就共享了同一个 Terminal。无论是 A 还是 B 都可以操作该 Terminal。

2.4 关闭连接

A 在他的终端 (Terminal) 上键入 exit 即可。

A$ exit

3. 基本原理

tmate 即 teammates,是 tmux 的一个分支,并且和 tmux 使用相同的配置信息 (i.e:tmate 可与 tmux 共享 ~/.tmux.conf )。**tmate 不仅是一个终端多路复用器,而且具有即时分享终端的能力。**它允许在单个屏幕中创建并操控多个终端,同时这些终端还能与其他人分享。总的来说,tmux 支持的窗口 (window) 和窗格 (pane) 功能,tmate 都支持。tmate 的基本工作原理如下:

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

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

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

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

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

4. 常见命令

4.1 显示连接信息

$ tmate show-messages  Sat Feb 29 20:32:31 2020 [tmate] Connecting to master.tmate.io...  Sat Feb 29 20:32:37 2020 [tmate] Note: clear your terminal before sharing readonly access  Sat Feb 29 20:32:37 2020 [tmate] web session read only: https://tmate.io/t/ro-59nhrEMMpr8fvYEfW3LbU69r9  Sat Feb 29 20:32:37 2020 [tmate] ssh session read only: ssh ro-59nhrEMMpr8fvYEfW3LbU69r9@nyc1.tmate.io  Sat Feb 29 20:32:37 2020 [tmate] web session: https://tmate.io/t/2VFPtcBNnhaNRGWmKgKZH3zfn  Sat Feb 29 20:32:37 2020 [tmate] ssh session: ssh 2VFPtcBNnhaNRGWmKgKZH3zfn@nyc1.tmate.io

4.2 分离/接入/查看

  • 指定 socket 文件启动

$ tmate -S /tmp/foo.sock
  • 分离

$ tmate detach
  • 接入

$ tmate -S /tmp/foo.sock attach
  • 查看

$ tmate -S /tmp/foo.sock ls  0: 2 windows (created Sat Feb 29 20:40:02 2020) [144x35]
  • 关闭会话

$ tmate -S /tmp/foo.sock kill-session

5. 更多连接方式

tmate 支持 4 种连接方式,ssh、ssh-ro、web 和 web-ro。其中,ssh、web 支持读写访问,ssh-ro、web-ro 支持只读访问。下面就是 web 只读访问方式的截图。

注意: tmate 启动之后,过几分钟后再执行 tmate show-messages 就会失效,那么需要重新获取连接信息的话,可以使用下面的脚本:

 1 #!/bin/bash   2    3 function usage   4 {   5         echo "Usage: $1  [sshrw|webrw|sshro|webro]" >&2   6 }   7    8 tmate_sock=$1   9 msg_type=${2:-"sshrw"}  10 [[ -z $tmate_sock ]] && usage $0 && exit 1  11   12 case $msg_type in  13         "sshrw") tmate -S $tmate_sock display -p '#{tmate_ssh}'    ;;  14         "sshro") tmate -S $tmate_sock display -p '#{tmate_ssh_ro}' ;;  15         "webrw") tmate -S $tmate_sock display -p '#{tmate_web}'    ;;  16         "webro") tmate -S $tmate_sock display -p '#{tmate_web_ro}' ;;  17         *) usage $0; exit 1; ;;  18 esac  19 exit $?

例如:

$ ./foo.sh /tmp/foo.sock sshrw  ssh JHELdz9a3EvTcL5w5beVMvwde@sfo2.tmate.io  $ ./foo.sh /tmp/foo.sock sshro ssh ro-Nv7fk2YT3urVEAEFCSexx7XHw@sfo2.tmate.io  $ ./foo.sh /tmp/foo.sock webrw  https://tmate.io/t/JHELdz9a3EvTcL5w5beVMvwde  $ ./foo.sh /tmp/foo.sock webro  https://tmate.io/t/ro-Nv7fk2YT3urVEAEFCSexx7XHw

新版本的 Tmate,可以用 tmate -F 随时显示相关连接信息。

6.访问控制

通常情况下,鉴于 tmate 生成的共享链接(ssh or web)在提供给他人访问的时候无需任何安全验证,而且此连接存储在 tmate.io 的服务器上,所以在使用此功能的时候请保持谨慎。

  • 第一,只把共享链接发送给你所信任的人知晓;

  • 第二,如无必要,请仅仅发送只读链接;

  • 第三,一旦共享结束,请及时关闭会话。

那么,如何实现访问控制呢?

  • 将你所信任的人 B 的公钥加入到你 (A) 的 ~/.ssh/authorized_keys 文件中,

  • 启动 tmate 使用如下命令:

A$ tmate -a ~/.ssh/authorized_keys

这样,只有B才能通过 ssh 访问你的共享链接。陌生人 C 的公钥没有保存到 A 的 ~/.ssh/authorized_keys 文件中,于是会出现如下类似的拒绝访问信息。

C$ ssh ERayHQKUPZkhtVufjjFTvtfjC@sgp1.tmate.io  ERayHQKUPZkhtVufjjFTvtfjC@sgp1.tmate.io: Permission denied (publickey).

有关访问控制的更多内容,请访问 https://tmate.io/ 的 Access control 一节。

特别提示: 一旦使用了基于文件 authorized_keys 的访问控制,就不能使用基于 web 的连接方式,也就是说,只能使用 ssh 进行连接。

以上就是终端共享神器Tmate怎么用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

终端 信息 支持 文件 方式 时候 更多 服务器 链接 工作 帮助 控制 服务 神器 命令 就是 公钥 功能 原理 后台 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司 深圳恒合互联网络科技有限公司 互联网科技深圳 浩特互联网科技 互联网科技博客 深圳市运趣互联网科技有限公司 银川新华互联网科技职业技术培训学校图片 互联网金融中的现代科技 湖南一路畅行互联网科技 中国科技创新与世界互联网大会 东莞新华互联网科技学校 互联网时代的科技公司 互联网金融科技元年 广东工业互联网大赛深圳学泰科技 图游互联网科技 互联网时代科技型公司的机会 易租星互联网科技有限公司 唐山双旺合互联网科技产业园 青岛易易互联网科技 如何强化互联网金融科技 互联网科技有限公司图片 伴你行互联网科技有限公司 老年人脱离互联网科技的作文 威龙国际互联网科技公司 长沙茂晟互联网科技有限公司 众安科技工业互联网合作 银行科技岗属于互联网吗 悟空问答互联网科技 保山浩联互联网科技有限公司 知域互联网科技有限公司官网
0