歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 在Linux系統中安裝web端的遠程連接工具Wetty

在Linux系統中安裝web端的遠程連接工具Wetty

日期:2017/3/1 17:32:45   编辑:Linux技術

Wetty 是什麼?

Wetty = Web + tty

作為系統管理員,如果你是在 Linux 桌面下,你可以用它像一個 GNOME 終端(或類似的)一樣來連接遠程服務器;如果你是在 Windows 下,你可以用它像使用 Putty 這樣的 SSH 客戶端一樣來連接遠程,然後同時可以在浏覽器中上網並查收郵件等其它事情。

安裝步驟

第1步: 安裝 epel 源

復制代碼代碼如下:
# wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm

第2步:安裝依賴

復制代碼代碼如下:
# yum install epel-release git nodejs npm -y

第3步:在安裝完依賴後,克隆 GitHub 倉庫

復制代碼代碼如下:
# git clone https://github.com/krishnasrinivas/wetty

第4步:運行 Wetty

復制代碼代碼如下:
# cd wetty
# npm install

第5步:從 Web 浏覽器啟動 Wetty 並訪問 Linux 終端

復制代碼代碼如下:
# node app.js -p 8080

第6步:為 Wetty 安裝 HTTPS 證書

復制代碼代碼如下:
# openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

等待完成。
第7步:通過 HTTPS 來使用 Wetty

復制代碼代碼如下:
# nohup node app.js --sslkey key.pem --sslcert cert.pem -p 8080 &

第8步:為 wetty 添加一個用戶

復制代碼代碼如下:
# useradd <username>
# Passwd <username>

第9步:訪問 wetty
http://Your_IP-Address:8080
輸入你之前為 wetty 創建的證書然後訪問。

設置wetty不需要賬號登錄便可進行命令行操作
我們看到,在浏覽器中輸入http://127.0.0.1:3000進行訪問的時候,還需要我們輸入賬號密碼進行認證(如下圖第一行所示)。
20151221114428980.png (775×202)

但在某些應用場景下,我們不需要用戶輸入賬號密碼進行認證,而且用戶也不一定知道賬號密碼。我們希望用戶打開即可直接進行命令操作。

在命令行終端中輸入node app.js會如下提示,其中列出了啟動wetty服務的所有選項說明。
20151221114531305.png (649×220)

從上圖的這些選項中看到wetty是通過ssh來進行終端操作的,而其中的--sshauth用於指定ssh的認證模式,其默認為password,表示通過賬號密碼方式進行認證。
Ssh的認證方式有很四種:hostbased、publickey、keyboard-interactive、password。其中password即我們上面說的賬號密碼認證方式;publickey是RSA公鑰認證方式;其它兩個我們暫時不關心。

Wetty默認采用的是password認證方式,我們可以通過--sshauth選項指定為publickey認證方式即可。關於ssh公鑰的認證機制是:

用戶將自己的公鑰儲存在遠程主機上。登錄的時候,遠程主機會向用戶發送一段隨機字符串,用戶用自己的私鑰加密後,再發回來。遠程主機用事先儲存的公鑰進行解密,如果成功,就證明用戶是可信的,直接允許登錄shell,不再要求密碼。

那麼我們需要先打開一個命令行終端,然後輸入


復制代碼代碼如下:$ ssh-keygen
來生成我們的公鑰和私鑰。
20151221114549157.png (648×376)

該命令生成的公鑰和密鑰默認都保存在~/.ssh目錄下,
20151221114605058.png (654×54)

其中id_rsa文件中保存的是私鑰,id_rsa.pub文件中保存的是公鑰。

上面ssh公鑰認證機制提供我們需要講公鑰保存到遠程機器中,保存在登錄後的用戶主目錄的~/.ssh/authorized_keys文件中。公鑰就是一段字符串,只要把它追加在authorized_keys文件的末尾就行了。而此時我們的遠程機器即是本地機器,於是我們只需要將~/.ssh/id_rsa.pub復制一份並命名為authorized_keys即可。

復制代碼代碼如下:
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

20151221114621333.png (645×102)

然後我們切換到wetty目錄下,啟動wetty服務,

復制代碼代碼如下:
$ node app.js -p 3000 --sshauth=publickey

20151221114637679.png (647×58)

然後在浏覽器中輸入http://127.0.0.1:3000/,可以看到此時不需要輸入賬號密碼即可直接操作,如下圖所示,、
20151221114654596.png (728×188)

如果我們嫌每次啟動的時候還要指定--sshauth選項太麻煩的話,我們可以直接修改app.js文件中源代碼。打開app.js文件,我們可以看到其在第45行指定的sshauth的默認認證方式為password,我們只需要將其修改為publickey即可。
20151221114715023.png (308×75)

Copyright © Linux教程網 All Rights Reserved