以往我們在 GUI 介面用慣了 TeamViewer / VNC 來進行 debug,可是如果只有 Terminal 的環境下 Teamviewer / VNC 就無用武之地了 …
最近在 Travis CI 看到他的 debug build,使用的是 tmate 來做 Remote terminal,覺得很方便也很 hacker XDD ..
tmate 是一個 Instant terminal sharing 的工具,預設 internet 模式 tmate 在啟動時會使用 libssh 和 tmate.io 建立 ssh session,外部的 Remote User 可以透過 tmate.io 提供的 tmux client 給 ssh 接入到 destination tmate。
tmate 之間的溝通是透過 msgpack + ssh 作為溝通通道,用 gzip 壓縮來降低網路頻寬限制,提昇像是 vim 這種可能大量資料的效能。
The local and remote tmux servers communicate with a protocol on top of msgpack, which is gzipped over ssh for network bandwidth efficiency as vim scrolling can generate massive amounts of data.
用起來蠻簡單的,在 MacOS 用 homebrew 安裝:
$ brew install tmate
在 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
或是自己 build source
$ git clone https://github.com/tmate-io/tmate $ cd tmate $ sudo ./autogen.sh $ sudo ./configure $ sudo make && make install
啟動 tmate Server,自動連上 tmate.io
$ tmate
在最下方會顯示 ssh session 像是:
[tmate] ssh session: ssh fUraGDBAKONzoyjg6v1zl8Kqo@ln2.tmate.io
在遠端的 Client 只要下 ssh fUraGDBAKONzoyjg6v1zl8Kqo@ln2.tmate.io 就可以接上了! 而且畫面是同步的。