tmate 是什么
tmate 可以用于远程分享终端,实乃远程协同办公之神器。
自主部署
通常大家都是使用 tmate.io 的服务,不过墙外的服务, 300 多ms 的延时,会有明显可感知的延时,以及不可靠因素。
近期花了些时间,自己部署了一套 tmate 服务,把过程记录一下。
服务端
tmate 有提供 docker 镜像,所以部署还是挺方便的。
生成 keys
1
2
3git clone git@github.com:tmate-io/tmate-ssh-server.git
cd tmate-ssh-server
./create_keys.sh会在当前目录生成
keys
目录,并且会得到如下的输出,这些可以先记录下来,后续会用到。1
2
3
4set -g tmate-server-host localhost
set -g tmate-server-port 22
set -g tmate-server-rsa-fingerprint SHA256:JOhvYoiBO0kVltwqKHTgKVCfvyajWV/cGwNXSyTNRcE
set -g tmate-server-ed25519-fingerprint SHA256:+N/UZ8BNfTVNoOQjH4yEe0GoTFpapu/I0G4c6RI7HWo启动 docker 服务
1
2
3
4
5
6
7
8docker run -d --rm \
-p 8022:8022 \
-v `pwd`/keys:/etc/tmate/keys \
--env SSH_KEYS_PATH='/etc/tmate/keys' \
--env SSH_HOSTNAME=tmate.uncledou.site \
--env SSH_PORT_LISTEN=8022 \
--cap-add SYS_ADMIN \
tmate/tmate-ssh-server就这么简单,tmate 的服务端就部署好了。
客户端
- 安装 tmate 软件
tmate 在很多主流仓库里都有,可以先尝试直接用当前系统的apt
,yum
之类的安装。 如果不幸没有的话,也可以用 tmate 编译好的二进制,在 github release 里可以下载到二进制包,比如常见的 x86_64 机器上,就是这个 tmate-2.4.0-static-linux-amd64.tar.xz。 - 配置 .tmate.conf
把客户端部署第一步的输出,写入到本机的~/.tmate.conf
文件。注意其中的host
和port
需要改成自助部署的,比如我这里是这样的:1
2
3
4set -g tmate-server-host tmate.uncledou.site
set -g tmate-server-port 8022
set -g tmate-server-rsa-fingerprint SHA256:JOhvYoiBO0kVltwqKHTgKVCfvyajWV/cGwNXSyTNRcE
set -g tmate-server-ed25519-fingerprint SHA256:+N/UZ8BNfTVNoOQjH4yEe0GoTFpapu/I0G4c6RI7HWo
开始飞吧
至此 tmate 客户端就安装配置好了,执行 tmate 命令就可以得到类似的输出:
1 | Tip: if you wish to use tmate only for remote access, run: tmate -F [0/0] |
对方执行 ssh -p8022 XtydPFjTpbaz8eXxB77RGZeNZ@tmate.uncledou.site
,即可开始与你一起共享这个终端了。
如果你不想用 tmate.io 的服务,也不想自己部署,也可以使用我这套部署好的。按照我的部署,从客户端开始即可。
go ahead, happy hacking :)