tmate:秒級分享你的終端會話
不久前,我們寫過一篇關於 teleconsole 的介紹,該工具可用於快速分享終端給任何人(任何你信任的人)。今天我們要聊一聊另一款類似的應用,名叫 tmate
。
tmate
有什麼用?它可以讓你在需要幫助時向你的朋友們求助。
什麼是 tmate?
tmate 的意思是 teammates
,它是 tmux 的一個分支,並且使用相同的配置信息(例如快捷鍵配置,配色方案等)。它是一個終端多路復用器,同時具有即時分享終端的能力。它允許在單個屏幕中創建並操控多個終端,同時這些終端還能與其他同事分享。
你可以分離會話,讓作業在後台運行,然後在想要查看狀態時重新連接會話。tmate
提供了一個即時配對的方案,讓你可以與一個或多個隊友共享一個終端。
在屏幕的地步有一個狀態欄,顯示了當前會話的一些諸如 ssh 命令之類的共享信息。
tmate 是怎麼工作的?
- 運行
tmate
時,會通過libssh
在後台創建一個連接到 tmate.io (由 tmate 開發者維護的後台伺服器)的 ssh 連接。 - tmate.io 伺服器的 ssh 密鑰通過 DH 交換進行校驗。
- 客戶端通過本地 ssh 密鑰進行認證。
- 連接創建後,本地 tmux 伺服器會生成一個 150 位(不可猜測的隨機字元)會話令牌。
- 隊友能通過用戶提供的 SSH 會話 ID 連接到 tmate.io。
使用 tmate 的必備條件
由於 tmate.io
伺服器需要通過本地 ssh 密鑰來認證客戶機,因此其中一個必備條件就是生成 SSH 密鑰 key。 記住,每個系統都要有自己的 SSH 密鑰。
$ 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
tmate
已經包含在某些發行版的官方倉庫中,可以通過包管理器來安裝。
對於 Debian/Ubuntu,可以使用 APT-GET 命令或者 APT 命令to 來安裝。
$ 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。
$ sudo apt-get install tmate
對於 Fedora,使用 DNF 命令 來安裝。
$ sudo dnf install tmate
對於基於 Arch Linux 的系統,使用 Yaourt 命令或 Packer 命令 來從 AUR 倉庫中安裝。
$ yaourt -S tmate
或
$ packer -S tmate
對於 openSUSE,使用 Zypper 命令 來安裝。
$ sudo zypper in tmate
如何使用 tmate
成功安裝後,打開終端然後輸入下面命令,就會打開一個新的會話,在屏幕底部,你能看到 SSH 會話的 ID。
$ tmate
要注意的是,SSH 會話 ID 會在幾秒後消失,不過不要緊,你可以通過下面命令獲取到這些詳細信息。
$ tmate show-messages
tmate
的 show-messages
命令會顯示 tmate 的日誌信息,其中包含了該 ssh 連接內容。
現在,分享你的 SSH 會話 ID 給你的朋友或同事從而允許他們觀看終端會話。除了 SSH 會話 ID 以外,你也可以分享 web URL。
另外你還可以選擇分享的是只讀會話還是可讀寫會話。
如何通過 SSH 連接會話
只需要在終端上運行你從朋友那得到的 SSH 終端 ID 就行了。類似下面這樣。
$ ssh session: ssh 3KuRj95sEZRHkpPtc2y6jcokP@sg2.tmate.io
如何通過 Web URL 連接會話
打開瀏覽器然後訪問朋友給你的 URL 就行了。像下面這樣。
只需要輸入 exit
就能退出會話了。
[Source System Output]
[exited]
[Remote System Output]
[server exited]
Connection to sg2.tmate.io closed by remote host。
Connection to sg2.tmate.io closed。
via: https://www.2daygeek.com/tmate-instantly-share-your-terminal-session-to-anyone-in-seconds/
作者:[Magesh Maruthamuthu][a] 譯者:lujun9972 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive