一般狀況下,咱們在訪問任何遠程服務器時,會使用常見的通訊工具如OpenSSH和Putty等。可是,有可能咱們在防火牆後面不能使用這些工具訪問遠程系統,或者防火牆只容許HTTPS流量才能經過。不用擔憂!即便你在這樣的防火牆後面,咱們依然有辦法來訪問你的遠程系統。並且,你不須要安裝任何相似於OpenSSH或Putty的通信工具。你只須要有一個支持JavaScript和CSS的現代瀏覽器,而且你不用安裝任何插件或第三方應用軟件。css
這個 Shell In A Box,發音是shellinabox,是由Markus Gutschke開發的一款自由開源的基於Web的Ajax的終端模擬器。它使用AJAX技術,經過Web瀏覽器提供了相似原生的 Shell 的外觀和感覺。linux
這個shellinaboxd守護進程實現了一個Web服務器,可以偵聽指定的端口。其Web服務器能夠發佈一個或多個服務,這些服務顯示在用 AJAX Web 應用實現的VT100模擬器中。默認狀況下,端口爲4200。你能夠更改默認端口到任意選擇的任意端口號。在你的遠程服務器安裝shellinabox之後,若是你想從本地系統接入,打開Web瀏覽器並導航到:http://IP-Address:4200/。輸入你的用戶名和密碼,而後就能夠開始使用你遠程系統的Shell。看起來頗有趣,不是嗎?確實 有趣!web
免責聲明:shell
shellinabox不是SSH客戶端或任何安全軟件。它僅僅是一個應用程序,可以經過Web瀏覽器模擬一個遠程系統的Shell。同時,它和SSH沒有任何關係。這不是可靠的安全地遠程控制您的系統的方式。這只是迄今爲止最簡單的方法之一。不管如何,你都不該該在任何公共網絡上運行它。瀏覽器
shellinabox在默認庫是可用的。因此,你可使用命令來安裝它:安全
$ sudo apt-get install shellinabox
服務器
首先,使用命令安裝EPEL倉庫:網絡
# yum install epel-release
tcp
而後,使用命令安裝shellinabox:ide
# yum install 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。
注意:若是你改變了端口,請填寫修改後的端口。
你會獲得一個證書問題的警告信息。接受該證書並繼續。
並且注意訪問URL時記得用「https」的方式
輸入遠程系統的用戶名和密碼。如今,您就可以從瀏覽器自己訪問遠程系統的外殼。
右鍵點擊你瀏覽器的空白位置。你能夠獲得一些有頗有用的額外菜單選項。
從如今開始,你能夠經過本地系統的Web瀏覽器在你的遠程服務器隨意操做。
當你完成工做時,記得輸入exit
退出。
當再次鏈接到遠程系統時,單擊鏈接按鈕,而後輸入遠程服務器的用戶名和密碼。
若是想了解shellinabox更多細節,在你的終端鍵入下面的命令:
# man shellinabox
或者
# shellinaboxd -help
同時,參考shellinabox 在wiki頁面的介紹,來了解shellinabox的綜合使用細節。
正如我以前提到的,若是你在服務器運行在防火牆後面,那麼基於web的SSH工具是很是有用的。有許多基於web的SSH工具,但shellinabox是很是簡單而有用的工具,能夠從的網絡上的任何地方,模擬一個遠程系統的Shell。由於它是基於瀏覽器的,因此你能夠從任何設備訪問您的遠程服務器,只要你有一個支持JavaScript和CSS的瀏覽器。