web-based shell ansi/vt100

ajaxterm

Python implement

shellinabox

http://shellinabox.googlecode.com

http://chunchaichang.blogspot.com/2011/04/shellinabox-linux-shell.html

貌似好用很多,只是我想改他但不是冠希…

介紹一下里面一個參數, –service,預設沒下等同於 –service /:LOGIN

這個參數的說明


SERVICE := <url-path> ':' APP
APP     := 'LOGIN' | 'SSH' [ : <host> ] | USER ':' CWD ':' CMD
USER    := 'AUTH' | <username> ':' <groupname>
CWD     := 'HOME' | <dir>
CMD     := 'SHELL' | <cmdline>

還蠻有趣的一個定義方式…,他讓你可以定義多種 shell ~

預設是一進去首頁 http://shell/ 就會預設登入該台伺服器的 /bin/login 並且開啟 shell。

記得加上 –css /usr/local/share/doc/shellinabox/white-on-black.css 改成習慣的黑色背景…

但是如果你想要用 ssh 登其他伺服器,可以設定一些其他的 APP,

例如 想要用 http://shell/mlwmlw 登 mlwmlw.org 就可以這樣下參數

–service /mlwmlw:SSH:mlwmlw.org –service /:LOGIN

而且也可以加入數個 service

但是…用 CentOS 好像指定 SSH 會有一個 bug 按照下文把

http://code.google.com/p/shellinabox/issues/detail?id=50

shellinabox/service.c 的 -oVisualHostKey=no 註解掉重編就能跑了。


$ /usr/local/bin/shellinaboxd --port 443 --cert /tmp \
  --css /usr/local/share/doc/shellinabox/white-on-black.css

other

想要用 node.js + websocket 實作一套..

目前已經用 libssh 寫了一個 node.js 的 module..還堪運作,配上 socket.io 來傳資料,接下來要瞭解一下 ansi 的 terminal code~在接上 shellinabox 寫好的 v100 的轉碼介面~

http://wiki.bash-hackers.org/scripting/terminalcodes 可以先看一下入門文章= =

Ansi/vt100 入門指引…

Ansi/Vt100 是比較常見通用的 控制碼 協定,好像在 bbs 跟 ssh 上都是用這個在表示的,這控制符號除了可以改變前景背景顏色,好像還可以表示滑鼠游標跟輸入游標等等的狀態。

tput 是 linux 上的一個指令,算是一種是用來查詢 終端符號 資料庫的指令,因為 terminal 的協定有很多種阿~每種的值都有點不一樣,但是他們的目的跟功能應該都大同小異的,所以這指令能偵測你現在終端用的協定幫你用字傳查出你想要的控制碼。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *