Shell's Home

Sep 17, 2015 - 1 minute read - Comments

使用tmate和mdp做培训

tmate

其实很简单。有个大家都玩过tmux对吧。有个x炸天的工具,叫做tmate,是tmux的分支。地址在 这里

这个工具能做什么呢?开一个tmux的窗口,连接一台服务器,得到一个ssh指令。然后,其他人可以用这条ssh指令直接查看你的tmux,只读或共享操作都可以(我建议只读)。

这个工具进入了debian的testing和sid,但是没有进stable。所以要装一堆依赖编译一下。总之,最后是一个静态的binary文件,复制去bin目录下结束,没什么好废话的。

自建服务器

tmate官方提供了一组公开服务器,供大家使用。当然,这些对我等大局域网居民来说是没用的。所以follow the guide(官方主页上有),在自己的vps上搭建一个服务器。当然,22端口要改成其他端口。

然后填一个设定文件(也在官方主页上),你就能使用tmate连接自己的服务器了。fingerprint的扫描方法大概是,在tmate-slave目录下执行:

ssh-keygen -lf keys/ssh\_host\_dsa\_key
ssh-keygen -lf keys/ssh\_host\_rsa\_key
ssh-keygen -lf keys/ssh\_host\_ecdsa\_key

会得到三个fingerprint,写到客户端的配置里去。

唯一需要注意的是,除了tmate的配置文件里面需要设定三个fingerprint,你还得用ssh连接一下自己的这些服务器,并同意将fp添加到~/.ssh/known_host。不然也会有错误。

然后tmate,就能看到ssh指令了。

客户的连接

在tmate的窗口里,敲 tmate show-message ,你能够看到只读和读写ssh指令。这条指令里会有一个非常复杂的username,这个username是用作客户的身份验证的。虽然信息量并不是很大,但是作为临时的会话共享安全手段足够了。

注意如果你使用只读指令分享了屏幕,那么在操作过程中不应该再敲这条指令。否则别人就能看到读写ssh指令。

后面的事情就非常简单了,客户自己用ssh工具来连就行了。tmate对客户端没有任何要求。

mdp

tmate解决了pair work和屏幕分享的问题。但是要用于培训的话,我们还缺一个slide手段。

mdp 是一个命令行的slide工具(当然你也可以用tpp)。基本是基于markdown的。你可以按照官方文档来做一个slide,然后就可以很happy的和小伙伴们分享屏幕操作了。

还缺什么

其实最好还要有一个语音共享机制的,例如YY语音。

性能如何

还没测。我在同组的三个人之间试了一回,非常好用。大量的用户还没测。等测下来再写一篇。