tmate 是一个基于 tmux 的远程终端共享工具,主要用于远程协作、运维支持、远程开发调试等场景。它允许你快速将当前终端会话通过 SSH 或 Web URL 分享给他人,他们可以即时连接并与你一起操作终端。
tmate 的核心功能
| 功能 |
说明 |
| 🖥️ 终端共享 |
允许他人通过 SSH 或 Web URL 连接你的终端。 |
| 🔒 安全连接 |
默认使用加密的 SSH 通道,安全可靠。 |
| 👥 多人协作 |
多人可以同时连接同一个 tmate 会话。 |
| ⏳ 会话保持 |
类似 tmux,会话断开后不丢失。 |
| 🌍 Web 访问 |
提供一个基于浏览器的终端共享链接。 |
安装方式
Ubuntu / Debian
1 2
| sudo apt update sudo apt install tmate
|
CentOS / RHEL
1 2
| sudo yum install epel-release sudo yum install tmate
|
MacOS
基本使用命令
启动 tmate 会话
这将自动创建一个新的 tmate 会话,并显示 SSH/Web 连接地址。
查看当前共享地址
输出类似:
SSH session: ssh abcdef1234567890@nyc1.tmate.io
Web session: https://tmate.io/t/abcdef1234567890
获取 SSH 地址
1
| tmate display -p '#{tmate_ssh}'
|
获取 Web 终端地址
1
| tmate display -p '#{tmate_web}'
|
配置文件(可选)
默认配置文件路径为:~/.tmate.conf
示例配置:
1 2 3 4
| set -g tmate-server-host "sgp1.tmate.io" set -g tmate-server-port 22 set -g tmate-session-name "mydev" set -g status off
|
远程用户如何连接
SSH 用户:
1
| ssh abcdef1234567890@nyc1.tmate.io
|
浏览器用户:
打开链接,例如:
https://tmate.io/t/abcdef1234567890
安全性说明
- tmate 会话加密传输(基于 SSH)。
- 默认不暴露 root shell,除非你主动开启。
- Web 访问者默认只能只读(可配置为可写)。
⚙️ 常见使用场景
| 场景 |
描述 |
| DevOps 支持 |
让开发或运维实时进入你的终端诊断问题。 |
| 远程教学 |
实时展示终端操作给学员。 |
| 自动化调试 |
在 CI/CD 脚本失败时注入 tmate,供远程排查。 |
CI/CD 示例用法(比如 GitHub Actions):
1 2 3 4 5
| - name: Setup tmate session on failure if: failure() run: | sudo apt install -y tmate tmate -F
|