1.簡介
tty.js是使用Node.js開發的開源Web-based SSH.通過瀏覽器即可遠程訪問shell.
關於Web-based SSH的介紹參考https://en.wikipedia.org/wiki/Web-based_SSH.
關於tty.js項目,請參考下面兩個網頁,
https://www.npmjs.com/package/tty.js
https://github.com/chjj/tty.js/
2.安裝
tty.js是Node.js編寫,所在安裝之前我們要先安裝一下Node.js,參考http://www.cnblogs.com/lienhua34/p/4830891.html.
運行下面命令從github下載tty.js的源代碼,
$ git clone https://github.com/chjj/tty.js.git
然后進入tty.js目錄下,使用npm進行安裝,
$ cd tty.js $ sudo npm install
在運行npm install過程中,可能會出現node-gyp rebuild的錯誤,
此時我們需要運行下面兩個命令進行處理,
$ sudo apt-get install build-essential $ sudo npm install -g node-gyp
然后再次運行sudo npm install.
3.驗證
3.1運行tty.js
在bin目錄下有個tty.js的可執行文件,運行該文件,
$ cd bin && ./tty.js
便可啟動tty.js服務,該服務監聽8080端口,
打開瀏覽器,然后輸入http://127.0.0.1:8080/可以訪問tty.js,然后點擊頁面右上角的Open Terminal便可打開網頁終端進行命令行操作了(如下圖所示)。
3.2自定義tty.js服務
我們可以在根目錄新建一個mytty.js的文件,然后輸入以下內容,
var tty = require('./lib/tty.js'); var app = tty.createServer({ shell: 'bash', users: { foo: 'bar' }, port: 8000 }); app.get('/foo', function(req, res, next) { res.send('bar'); }); app.listen();
在tty.createServer()中自定義tty服務,其中shell設置了啟動的終端程序,users設置了訪問web網頁時的認證用戶信息,port設置了服務監聽端口號。保存文件,然后運行下面命令,
$ node mytty.js
然后在瀏覽器中輸入http://127.0.0.1:8000/,會彈出輸入用戶名和密碼的輸入框,輸入foo和bar,然后便可以打開tty服務的網頁。
3.3 tty服務的配置文件
tty.js服務的配置文件在~/.tty.js/config.json,該文件以json的格式保存相關的配置。一個配置樣例如下所示,
{ "users": { "hello": "world" }, "https": { "key": "./server.key", "cert": "./server.crt" }, "port": 8080, "hostname": "127.0.0.1", "shell": "bash", "static": "./static", "limitGlobal": 10000, "limitPerUser": 1000, "localOnly": false, "cwd": ".", "syncSession": false, "sessionTimeout": 600000, "log": true, "io": { "log": false }, "debug": false, "term": { "termName": "xterm", "geometry": [80, 24], "scrollback": 1000, "visualBell": false, "popOnBell": false, "cursorBlink": false, "screenKeys": false, "colors": [ "#2e3436", "#cc0000", "#4e9a06", "#c4a000", "#3465a4", "#75507b", "#06989a", "#d3d7cf", "#555753", "#ef2929", "#8ae234", "#fce94f", "#729fcf", "#ad7fa8", "#34e2e2", "#eeeeec" ] } }
3.4 以https協議啟動服務
我們在~/.tty.js目錄下運行openssl命令來自己生成一個ssl的證書,
$ openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 30000 -nodes
然后在~/tty.js目錄下便生成了兩個文件cert.pem和key.pem。然后修改將上面的配置文件樣例拷貝到~/tty.js/config.json中,然后修改https的配置(如下圖所示),
然后運行bin/tty.js,
然后在瀏覽器中輸入https://127.0.0.1:8080/,瀏覽器會提示說這是一個有風險的網站,繼續訪問即可。
(done)