歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

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

  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的浏覽器。

就這些啦。祝你今天有個好心情!

 

參考鏈接:

  • shellinabox website

via: shellinabox – A Web based AJAX Terminal Emulator

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

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

Copyright © Linux教程網 All Rights Reserved