使用 tmate工具分享內網終端
什麼是 tmate?
ofollow,noindex">tmate 即 teammates
,它是 tmux 的分支,並且使用相同的配置資訊(例如鍵盤,顏色方案等)。它是能即時分享的終端多路複用器。它允許在單個螢幕中建立並操控分享多個終端。你可以分離會話,讓作業在後臺執行,並在後面重新連線會話。在螢幕底部狀態列,顯示了當前會話的ssh 命令之類的共享資訊。
該工具實際實現了類似花生殼的功能,免費,且速度比同類ngrok快。類似的工具還有:Teleconsole、GoTTY等。
tmate 是怎麼工作的?
- tmate通過libssh`連線到 tmate.io(tmate開發者維護的後臺伺服器)。
- DH 交換時伺服器進行的 ssh金鑰校驗。
- 客戶端通過本地 ssh 金鑰進行認證。
- 連線建立後,本地 tmux 伺服器會生成一個 150 位(不可猜測的隨機字元)會話token。
- 通過SSH 會話 ID 可連線到 tmate.io。
準備
伺服器需要通過本地 ssh 金鑰來認證,要先生成 SSH 金鑰 key。
$ 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
以Debian/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
使用
終端輸入tmate:

圖片.png
底部的SSH 會話 ID 會在幾秒後消失,通過 tmate -S /tmp/tmate.sock display -p '#{tmate_ssh}'獲取。
現在可分享你SSH 會話 ID ,可以分享 web URL,還可設定只讀還是可讀寫。
參考資料
- 討論qq群630011153 144081101
- 本文涉及的python測試開發庫 謝謝點贊!
- 本文相關海量書籍下載
- 本文最新版本
- https://whatpixel.com/best-docker-books/
- https://reactdom.com/docker
SSH 連線會話
終端上執行 ssh 終端 ID 就行了。比如:ssh [email protected]

圖片.png
如何通過 Web URL 連線會話
開啟瀏覽器然後訪問朋友給你的 URL, 這個網址目前是被和諧了的。

image
輸入exit 就能退出會話了。