使用 SSH 和金鑰登入 cPanel 主機

這篇是要介紹使用 SSH 和金鑰登入 cPanel 的主機,我是以 Buluhost 和 GreenGeeks 主機為例。不過有些主機商沒有提供 SSH 的功能,例如 Sugarhosts,我有幾個站放在那邊,它的最大的好處是可以用中文溝通,可惜 SSH 不支援。

 

底下是記錄操作過程。

 

要求主機商啟用 SSH

 

有網友說 Bulehost 預設 SSH 是啟用的,好像也看過官網如此提過。不過我在測試時,看到這個訊息:

 

Shell access is not enabled on your account!

If you need shell access please contact support.

 

所以就線上請 Bulehost 幫我啟用,幸好只用簡單的英文就完成任務,對方立刻就幫忙啟用了。

 

至於 GreenGeeks 則是在 Support 網頁按下 Open new Ticket,簡單寫著我需要 SSH 功能,對方也是很快就來信說已經啟用了。

 

查詢主機 IP、網址和登入帳號

 

在 cPanel 界面中,可以找到主機的 IP,也可以看到用戶名和網域,下圖紅色的文字是被我修改過的,看的出來那是不合理的 IP。 :)

 

image

 

用 SSH 搭配帳密登入

 

其實這時就已經可以使用 SSH 登入了,因為還沒有設定金鑰,因此要用帳號及密碼的方式登入。

 

在 Windows 的命令提示字元只要輸入

 

SSH abc@xxx.org

 

 

SSH abc@162.241.456.789

 

就可以用網域或 IP 登入了。

 

下圖是被動過手腳的畫面。

 

image

 

用 PuTTY 搭配帳密登入

 

PuTTY 請自行上網搜尋下載。

 

執行時,只要在紅框處輸入網址或 IP,再按下最底下的 Open 即可。

 

image

 

接著如下圖,依序輸入帳號和密碼,就可以登入了。下圖也是有修改過的,非當事畫面。

 

image

 

在 cPanel 産生金鑰

 

接著我們要在 cPanel 建立金鑰,使用金鑰來登入。

 

在 cPanel 功能頁面中,選擇「SSH 存取」。

 

image

 

接著選擇「管理 SSH 金鑰」

 

image

 

在此我們選擇「産生新的金鑰」

 

image

 

底下畫面中,請設定密碼,其它用預設值,最後按下「産生金鑰」。

 

如果希望不使用密碼就直接登入,則此處不要設定密碼即可。底下的測試是使用沒有密碼的金鑰。

 

注意:GreenGeeks 主機的金鑰不允許無密碼,請見本文最後。

 

image

 

金鑰完成畫面。

 

image

 

回到上層後,可以看到剛産生的一對公開金鑰(公鑰)和私密金鑰(私鑰)。

 

授權金鑰

 

公鑰的授權狀態此時是 not authorized,要允許授權,請先按下後方紅框的「管理」。

 

image


 

按下「Authorize」,再返回即可。

 

image

 

此時公鑰已經獲得授權。

 

image

 

下載私鑰

 

再來是下載私鑰,按下紅框的「檢視/下載」。

 

image

 

我們要在 PuTTY 進行測試,所以要轉成 PuTTY 支援的 PPK 格式,在底下輸入建立金鑰時設定的密碼,並按下轉換。

 

當初若沒設密碼,此處空白即可。

 

image


 

底下是轉換過的畫面,我截掉一大部份,再按下「下載金鑰」,就依指示,把私鑰儲存在自已的電腦中。

 

image

 

使用 PuTTY 登入

 

開啟 PuTTY,左邊選 Session,右邊填入要登入的主機網址或 IP。

 

image

 

左邊選 Data,右邊填入要登入的帳號。

 

image

 

左邊選 Auth,右邊填入先前下載的私鑰。

 

image

 

最後回到 Session 頁,右邊紅框填上名稱,按下 Save,就會將此連線儲存起來。

 

日後直接在此名稱用滑鼠連點二下就可以進行連線了。

 

image

 

底下是沒有設定密碼時的自動登入畫面。

 

如果設定金鑰時有設定密碼,就會多一個詢問密碼的步驟。

 

image

 

使用 Windows 的 SSH 登入

 

這裡要介紹直接在 Windows命令提示字元 (Dos模式)使用 SSH 登入主機。

 

首先要再次下載私鑰,前面下載的版本是 PuTTY 使用的 PPK 格式,這次是下載一般格式。

 

同樣,在 cPanel 中選 SSH存取 -> 管理 SSH 金鑰,在私密金鑰選擇「檢視/下載」。

 

image

 

下圖是馬賽克的私鑰,選擇「下載金鑰」。

 

注意,金鑰請存在此目錄

 

C:\Users\xxx\.ssh

 

xxx 是個人的帳號

.ssh 目錄若不存在,請自行建立。

預設檔名是 id_rsa

 

我試過儲存 D 碟,結果無法使用,可能是不夠安全。

 

image

 

如果儲存的檔名是預設的 id_rsa,則此時就可以直接用 SSH 免帳密登入主機了。

 

image

 

若有好幾個主機要登入,每個主機有不同的私鑰,可以用底下的設定。

 

為了安全,下載私鑰後,主機上的私鑰也可以刪除,留下公鑰即可登入。

 

Windows SSH 多個帳號設定

 

在 C:\Users\個人帳號\.ssh 目錄下建立一個純文字檔,檔名是 config,內容如下:

 

 

Host xxxorg

User abc

HostName xxx.org

IdentityFile "~/.ssh/id_rsa_xxx"

 

# 另一台主機

Host xyzorg

User abc

HostName xyz.org

IdentityFile "~/.ssh/id_rsa_xyz"

 

 

此時只要執行

 

SSH xxxorg

 

就可以免帳密登入主機了,除非當初設定金鑰時有加密碼。

 

登入 xxxorg

 

image

 

執行 SSH xxxorg

 

等於是執行如下指令

 

SSH -i ~/.ssh/id_rsa_xxx abc@xxx.org

 

底下是登入另一個主機 xyxorg

 

image

 

使用匯入現成的金鑰

在 GreenGeeks 的主機中,原本也要試著産生無密碼的金鑰,卻發現它要求一定要使用密碼,所以我們改用由 Bluehost 産生的無密碼金鑰,將它匯入 GreenGeeks 中。

 

image

 

在 Bluhost 的公鑰中,選擇「檢視/下載」

 

image

 

這裡也不用下載了,直接把金鑰複製起來。

 

image

 

再至 GreenGeeks 的 cPanel 頁面 -> SSH訪問 -> 管理 SSH密鑰,這次不生成新密鑰了,而是選擇「導入密鑰」。

 

image

 

在下面畫面中,密鑰的名稱採用預設的 id_dsa,再把剛剛複製的公鑰內容貼到公鑰框,按下「導入」。

 

image

 

完成後會看到有一個公鑰,授權狀態是 not authorized,同樣按下紅框處的「管理」,允許其授權即可。

 

image

 

image

 

私鑰則不用安裝。

 

此時只要使用 Bluehost 的私鑰,就可以登入 GreenGeeks 了。

 

重要度:
文章分類:

發表新回應