什么是 tmate?
tmate 即 teammates
,它是 tmux 的分支,并且使用相同的配置信息(例如键盘,颜色方案等)。它是能即时分享的终端多路复用器。它允许在单个屏幕中创建并操控分享多个终端。你可以分离会话,让作业在后台运行,并在后面重新连接会话。在屏幕底部状态栏,显示了当前会话的ssh 命令之类的共享信息。
该工具实际实现了类似花生壳的功能,免费,且速度比同类ngrok快。类似的工具还有:Teleconsole、GoTTY等。
tmate 是怎么工作的?
- tmate通过libssh`连接到 tmate.io(tmate开发者维护的后台服务器)。
- DH 交换时服务器进行的 ssh密钥校验。
- 客户端通过本地 ssh 密钥进行认证。
- 连接创建后,本地 tmux 服务器会生成一个 150 位(不可猜测的随机字符)会话token。
- 通过SSH 会话 ID 可连接到 tmate.io。
准备
服务器需要通过本地 ssh 密钥来认证,要先生成 SSH 密钥 key。
$ 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
以Debian/Ubuntu为例:
$ 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:

底部的SSH 会话 ID 会在几秒后消失,通过 tmate -S /tmp/tmate.sock display -p '#{tmate_ssh}'获取。
现在可分享你SSH 会话 ID ,可以分享 web URL,还可设置只读还是可读写。
参考资料
- 讨论qq群630011153 144081101
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
- 本文最新版本
- https://whatpixel.com/best-docker-books/
- https://reactdom.com/docker
SSH 连接会话
终端上运行 ssh 终端 ID 就行了。比如:ssh CIzoXhuiObRIADBLzVzREzSmp@sf2.tmate.io

如何通过 Web URL 连接会话
打开浏览器然后访问朋友给你的 URL, 这个网址目前是被和谐了的。

输入exit 就能退出会话了。
网友评论