首頁 > 軟體

shellinabox:一款使用 AJAX 的基於 Web 的終端模擬器

2020-06-16 17:54:59

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在預設庫是可用的。所以,你可以使用命令來安裝它:

  1. $ sudo apt-get install shellinabox

 

在RHEL / CentOS系統上:

首先,使用命令安裝EPEL倉庫:

  1. # yum install epel-release

然後,使用命令安裝shellinabox:

  1. # yum install shellinabox

完成!

 

設定shellinabox

正如我之前提到的,shellinabox偵聽埠預設為4200。你可以將此埠更改為任意數位,以防別人猜到。

在Debian/Ubuntu系統上shellinabox組態檔的預設位置是/etc/default/shellinabox。在RHEL/CentOS/Fedora上,預設位置在/etc/sysconfig/shellinaboxd

如果要更改預設埠,

在Debian / Ubuntu:

  1. $ sudo vi /etc/default/shellinabox

在RHEL / CentOS / Fedora:

  1. # vi /etc/sysconfig/shellinaboxd

更改你的埠到任意數位。因為我在本地網路上測試它,所以我使用預設值。

  1. # Shell in a box daemon configuration
  2. # For details see shellinaboxd man page
  3. # Basic options
  4. USER=shellinabox
  5. GROUP=shellinabox
  6. CERTDIR=/var/lib/shellinabox
  7. PORT=4200
  8. OPTS="--disable-ssl-menu -s /:LOGIN"
  9. # Additional examples with custom options:
  10. # Fancy configuration with right-click menu choice for black-on-white:
  11. # OPTS="--user-css Normal:+black-on-white.css,Reverse:-white-on-black.css --disable-ssl-menu -s /:LOGIN"
  12. # Simple configuration for running it as an SSH console with SSL disabled:
  13. # OPTS="-t -s /:SSH:host.example.com"

重新啟動shelinabox服務。

在Debian/Ubuntu:

  1. $ sudo systemctl restart shellinabox

或者

  1. $ sudo service shellinabox restart

在RHEL/CentOS系統,執行下面的命令能在每次重新啟動時自動啟動shellinaboxd服務

  1. # systemctl enable shellinaboxd

或者

  1. # chkconfig shellinaboxd on

如果你正在執行一個防火牆,記得要開啟埠4200或任何你指定的埠。

例如,在RHEL/CentOS系統,你可以如下圖所示允許埠。

  1. # 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

作者:SK 譯者:xiaoyu33 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-08/121865.htm


IT145.com E-mail:sddin#qq.com