GoTTY:把你的 Linux 終端放到瀏覽器裏麵
GoTTY 是一個簡單的基於 Go 語言的命令行工具,它可以將你的終端(TTY)作為 web 程序共享。它會將命令行工具轉換為 web 程序。
它使用 Chrome OS 的終端仿真器(hterm)來在 Web 瀏覽器上執行基於 JavaScript 的終端。重要的是,GoTTY 運行了一個 Web 套接字服務器,它基本上是將 TTY 的輸出傳輸給客戶端,並從客戶端接收輸入(即允許客戶端的輸入),並將其轉發給 TTY。
它的架構(hterm + web socket 的想法)靈感來自 Wetty 項目,它使終端能夠通過 HTTP 和 HTTPS 使用。
先決條件
你需要在 Linux 中安裝 GoLang (Go 編程語言) 環境來運行 GoTTY。
如何在 Linux 中安裝 GoTTY
如果你已經有一個可以工作的 Go 語言環境,運行下麵的 go get
命令來安裝它:
# go get github.com/yudai/gotty
上麵的命令會在你的 GOBIN
環境變量中安裝 GOTTY 的二進製,嚐試檢查下是否如此:
# $GOPATH/bin/
檢查 GOBIN 環境
如何在 Linux 中使用 GoTTY
要運行它,你可以使用 GOBIN 環境變量並用命令補全:
# $GOBIN/gotty
另外,要不帶完整命令路徑運行 GoTTY 或其他 Go 程序,使用 export
命令將 GOBIN
變量添加到~/.profile
文件中的 PATH
環境變量中。
export PATH="$PATH:$GOBIN"
保存文件並關閉。接著運行 source
來使更改生效:
# source ~/.profile
運行 GoTTY 命令的常規語法是:
Usage: gotty [options] <Linux command here> [<arguments...>]
現在用 GoTTY 運行任意命令,如 df 來從 Web 瀏覽器中查看係統分區空間及使用率。
# gotty df -h
GoTTY 默認會在 8080 啟動一個 Web 服務器。在瀏覽器中打開 URL:https://127.0.0.1:8080/
,你會看到運行的命令仿佛運行在終端中一樣:
Gotty 查看 Linux 磁盤使用率
如何在 Linux 中自定義 GoTTY
你可以在 ~/.gotty
配置文件中修改默認選項以及終端,如果該文件存在,它會在每次啟動時加載這個文件。
這是由 getty 命令讀取的主要自定義文件,因此,按如下方式創建:
# touch ~/.gotty
並為配置選項設置你自己的有效值(在此處查找所有配置選項)以自定義 GoTTY,例如:
// Listen at port 9000 by default
port = "9000"
// Enable TSL/SSL by default
enable_tls = true
// hterm preferences
// Smaller font and a little bit bluer background color
preferences {
font_size = 5,
background_color = "rgb(16, 16, 32)"
}
你可以使用命令行中的 --html
選項設置你自己的 index.html
文件:
# gotty --index /path/to/index.html uptime
如何在 GoTTY 中使用安全功能
由於 GoTTY 默認不提供可靠的安全保障,你需要手動使用下麵說明的某些安全功能。
允許客戶端在終端中運行命令
請注意,默認情況下,GoTTY 不允許客戶端輸入到TTY中,它隻支持窗口縮放。
但是,你可以使用 -w
或 --permit-write
選項來允許客戶端寫入 TTY,但是並不推薦這麼做因為會有安全威脅。
以下命令會使用 vi 命令行編輯器在 Web 瀏覽器中打開文件 fossmint.txt
進行編輯:
# gotty -w vi fossmint.txt
以下是從 Web 瀏覽器看到的 vi 界麵(像平常一樣使用 vi 命令):
Gotty Web Vi 編輯器
使用基本(用戶名和密碼)驗證運行 GoTTY
嚐試激活基本身份驗證機製,這樣客戶端將需要輸入指定的用戶名和密碼才能連接到 GoTTY 服務器。
以下命令使用 -c
選項限製客戶端訪問,以向用戶詢問指定的憑據(用戶名:test
密碼:@67890
):
# gotty -w -p "9000" -c "test@67890" glances
使用基本驗證運行 GoTTY
Gotty 生成隨機 URL
限製訪問服務器的另一種方法是使用 -r
選項。GoTTY 會生成一個隨機 URL,這樣隻有知道該 URL 的用戶才可以訪問該服務器。
還可以使用 -title-format "GoTTY – {{ .Command }} ({{ .Hostname }})"
選項來定義瀏覽器標題。glances 用於顯示係統監控統計信息:
# gotty -r --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances
以下是從瀏覽器中看到的上麵的命令的結果:
使用 Gotty 隨機 URL 用於 Glances 係統監控
帶有 SSL/TLS 使用 GoTTY
因為默認情況下服務器和客戶端之間的所有連接都不加密,當你通過 GoTTY 發送秘密信息(如用戶憑據或任何其他信息)時,你需要使用 -t
或 --tls
選項才能在會話中啟用 TLS/SSL:
默認情況下,GoTTY 會讀取證書文件 ~/.gotty.crt
和密鑰文件 ~/.gotty.key
,因此,首先使用下麵的openssl
命令創建一個自簽名的證書以及密鑰( 回答問題以生成證書和密鑰文件):
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.gotty.key -out ~/.gotty.crt
按如下所示,通過啟用 SSL/TLS,以安全方式使用 GoTTY:
# gotty -tr --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances
與多個客戶端分享你的終端
你可以使用終端複用程序來與多個客戶端共享一個進程,以下命令會啟動一個名為 gotty 的新 tmux 會話來運行 glances(確保你安裝了 tmux):
# gotty tmux new -A -s gotty glances
要讀取不同的配置文件,像下麵那樣使用 –config "/path/to/file"
選項:
# gotty -tr --config "~/gotty_new_config" --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances
要顯示 GoTTY 版本,運行命令:
# gotty -v
原文發布時間為:2017-04-25
本文來自雲棲社區合作夥伴“Linux中國”
最後更新:2017-05-22 14:02:53
上一篇:
如何在樹莓派上安裝 Fedora 25
下一篇:
使用 badIPs.com 保護你的服務器,並通過 Fail2ban 報告惡意 IP
我的超級“盒子”
C++錯誤“exit was not declared in this scope”
《SAFe 4.0參考指南:精益軟件與係統工程的規模化敏捷框架》SAFe原則
activiti web 流程設計器 整合視頻教程 Activiti-master
如何應對工控網絡威脅 4點入手
Android開發12——Andorid中操作數據庫的insert的兩種方法以及nullColumnHack
「阿裏巴巴編碼規範(Java版)」認證考試出爐!你考過了嗎?
阿裏視頻雲總經理朱照遠:視界大有不同
android 編程時,如何在Eclipse中查看Android源碼或者第三方組件包源碼
賽思互動:麵對新形勢,傳統CRM何處安身?