2021-05-12 14:32:11
shellinabox:一款使用 AJAX 的基於 Web 的終端模擬器
shellinabox簡介
通常情況下,我們在存取任何遠端伺服器時,會使用常見的通訊工具如OpenSSH和Putty等。但是,有可能我們在防火牆後面不能使用這些工具存取遠端系統,或者防火牆只允許HTTPS流量才能通過。不用擔心!即使你在這樣的防火牆後面,我們依然有辦法來存取你的遠端系統。而且,你不需要安裝任何類似於OpenSSH或Putty的通訊工具。你只需要有一個支援JavaScript和CSS的現代瀏覽器,並且你不用安裝任何外掛或第三方應用軟體。
這個 Shell In A Box,發音是shellinabox,是由Markus Gutschke開發的一款自由開源的基於Web的Ajax的終端模擬器。它使用AJAX技術,通過Web瀏覽器提供了類似原生的 Shell 的外觀和感受。
這個shellinaboxd守護行程實現了一個Web伺服器,能夠偵聽指定的埠。其Web伺服器可以發布一個或多個服務,這些服務顯示在用 AJAX Web 應用實現的VT100模擬器中。預設情況下,埠為4200。你可以更改預設埠到任意選擇的任意埠號。在你的遠端伺服器安裝shellinabox以後,如果你想從本地系統接入,開啟Web瀏覽器並導航到:http://IP-Address:4200/。輸入你的使用者名稱和密碼,然後就可以開始使用你遠端系統的Shell。看起來很有趣,不是嗎?確實 有趣!
免責宣告:
shellinabox不是SSH用戶端或任何安全軟體。它僅僅是一個應用程式,能夠通過Web瀏覽器模擬一個遠端系統的Shell。同時,它和SSH沒有任何關係。這不是可靠的安全地遠端控制您的系統的方式。這只是迄今為止最簡單的方法之一。無論如何,你都不應該在任何公共網路上執行它。
安裝shellinabox
在Debian / Ubuntu系統上:
shellinabox在預設庫是可用的。所以,你可以使用命令來安裝它:
$ sudo apt-get install shellinabox
在RHEL / CentOS系統上:
首先,使用命令安裝EPEL倉庫:
# yum install epel-release
然後,使用命令安裝shellinabox:
# yum install shellinabox
完成!
設定shellinabox
正如我之前提到的,shellinabox偵聽埠預設為4200。你可以將此埠更改為任意數位,以防別人猜到。
在Debian/Ubuntu系統上shellinabox組態檔的預設位置是/etc/default/shellinabox。在RHEL/CentOS/Fedora上,預設位置在/etc/sysconfig/shellinaboxd。
如果要更改預設埠,
在Debian / Ubuntu:
$ sudo vi /etc/default/shellinabox
在RHEL / CentOS / Fedora:
# vi /etc/sysconfig/shellinaboxd
更改你的埠到任意數位。因為我在本地網路上測試它,所以我使用預設值。
# Shell in a box daemon configuration
# For details see shellinaboxd man page
# Basic options
USER=shellinabox
GROUP=shellinabox
CERTDIR=/var/lib/shellinabox
PORT=4200
OPTS="--disable-ssl-menu -s /:LOGIN"
# Additional examples with custom options:
# Fancy configuration with right-click menu choice for black-on-white:
# OPTS="--user-css Normal:+black-on-white.css,Reverse:-white-on-black.css --disable-ssl-menu -s /:LOGIN"
# Simple configuration for running it as an SSH console with SSL disabled:
# OPTS="-t -s /:SSH:host.example.com"
重新啟動shelinabox服務。
在Debian/Ubuntu:
$ sudo systemctl restart shellinabox
或者
$ sudo service shellinabox restart
在RHEL/CentOS系統,執行下面的命令能在每次重新啟動時自動啟動shellinaboxd服務
# systemctl enable shellinaboxd
或者
# chkconfig shellinaboxd on
如果你正在執行一個防火牆,記得要開啟埠4200或任何你指定的埠。
例如,在RHEL/CentOS系統,你可以如下圖所示允許埠。
# firewall-cmd --permanent --add-port=4200/tcp
# firewall-cmd --reload
使用
現在,在你的用戶端系統,開啟Web瀏覽器並導航到:https://ip-address-of-remote-servers:4200。
注意:如果你改變了埠,請填寫修改後的埠。
你會得到一個證書問題的警告資訊。接受該證書並繼續。
Privacy error - Google Chrome_001
輸入遠端系統的使用者名稱和密碼。現在,您就能夠從瀏覽器本身存取遠端系統的外殼。
Shell In A Box - Google Chrome_003
右鍵點選你瀏覽器的空白位置。你可以得到一些有很有用的額外選單選項。
Shell In A Box - Google Chrome_004
從現在開始,你可以通過本地系統的Web瀏覽器在你的遠端伺服器隨意操作。
當你完成工作時,記得輸入exit
退出。
當再次連線到遠端系統時,單擊連線按鈕,然後輸入遠端伺服器的使用者名稱和密碼。
Shell In A Box - Google Chrome_005
如果想了解shellinabox更多細節,在你的終端鍵入下面的命令:
# man shellinabox
或者
# shellinaboxd -help
同時,參考shellinabox 在wiki頁面的介紹,來了解shellinabox的綜合使用細節。
結論
正如我之前提到的,如果你在伺服器執行在防火牆後面,那麼基於web的SSH工具是非常有用的。有許多基於web的SSH工具,但shellinabox是非常簡單而有用的工具,可以從的網路上的任何地方,模擬一個遠端系統的Shell。因為它是基於瀏覽器的,所以你可以從任何裝置存取您的遠端伺服器,只要你有一個支援JavaScript和CSS的瀏覽器。
就這些啦。祝你今天有個好心情!
參考連結:
via: shellinabox – A Web based AJAX Terminal Emulator
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-08/121865.htm
相關文章