终端共享工具Tmate简明教程

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

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


  1. A$ ssh-keygen 

2.3 通过 ssh 进行连接

B 在其终端输入:


  1. B$ ssh 3vRvL79HMtjmBetF37REVvU4z@sfo2.tmate.io 

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

2.4 关闭连接

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


  1. 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 显示连接信息


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

4.2 分离/接入/查看

  •  指定 socket 文件启动 

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

  1. $ tmate detach 
  •  接入 

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

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

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

5. 更多连接方式

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

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章