架站101站長基本工具 – 使用SSH快速連入網路主機的方法

ssh_login_featured_pic

前言:

這幾年我們學會了做網頁設計,接下來,無論是網頁的html檔案要放在哪?或是運作的wordpress 維護與故障排除,我們都需要連線進去網頁主機,一般最傳統的方法,就是用FTP把檔案上傳。但漸漸地你會發現,CMS網站系統(如wordpress、Joomla、Opencart等)一定是需要連線到主機的系統裡面做操作。因此SSH這樣的工具,就變得非常重要與方便。

什麼是SSH? 看看維基百科怎麼說

SSH (Secure Shell)是一種加密的網路傳輸協定,可在不安全的網路中為網路服務提供安全的傳輸環境。SSH通過在網路中建立安全隧道來實現SSH客戶端與伺服器之間的連接。SSH最常見的用途是遠端登錄系統,人們通常利用SSH來傳輸命令行介面和遠端執行命令。

Public Key Crytography (PK crypto)

而傳統使用SSH連線到網頁主機,常常需要打帳號密碼,這往往也是造成網站被入侵的原因之一。因為很多木馬程式都在監聽你的鍵盤按鍵,所以使用本文章的方法,直接透過公、私鑰認證的方法,直接完成連線認證,快速又安全。

方法流程如下:

  1. 先製作本機電腦的私鑰與公鑰
  2. 到主機商的後台使用網頁終端機連入主機
  3. 將自己的公鑰放到指定檔案內
  4. 直接透過ssh 連進去主機內

這原理主要是要替你的電腦做出兩把鑰匙,一把私鑰、一把公鑰,當然它們只是一串人類看不懂的亂碼。以後只要用ssh連進去網路主機的時候,網路主機系統會去比對這是不是你,因為事先有放了公鑰在主機上的authorized_keys 檔案中,因為我們電腦有私鑰,所以就能解開祕密。放你進入主機了,從此就不用麻煩的登入步驟了。

實際操作:

1.先製作本機電腦的私鑰與公鑰

製作鑰匙,在終端機輸入指令

ssh-keygen

接著它會告訴你,製作出來的鑰匙放哪了

Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):

然後它會問你要不要用密碼加密

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

也可以不打直接按下Enter,以後用到鑰匙的時候也不會問你鑰匙密碼。最後如下,會告訴你,檔案已經生成 id_rsa 就是你的私鑰,千萬不要給任何人知道,也不要上傳到任何地方。id_rsa.pub,就是公鑰。等等我們會用到。

Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
8c:e9:7c:fa:bf:c4:e5:9c:c9:b8:60:1f:fe:1c:d3:8a root@here
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|       +         |
|      o S   .    |
|     o   . * +   |
|      o + = O .  |
|       + = = +   |
|      ....Eo+    |
+-----------------+

這邊要溫馨提示一下,若你已經生成好公、私鑰以後,也把公鑰運用在其他網站上時,千萬不要再次執行ssh-keygen。會刷新鑰匙,除非有備份檔案,不然以前的鑰匙也不會存在。

接下來我們要找出做好的公鑰,它就放在 根目錄的.ssh資料夾內。 ~代表回到根目錄。 所以我們打 cd ~/.ssh切換到 SSH放認證資料的地方。 接著我們用cat id_rsa.pub顯示檔案的內容。

cd ~/.ssh

ls

cat id_rsa.pub

公鑰看起來就是一串很長的亂碼,如下圖。

2.到主機商的後台使用網頁終端機連入主機

接著我們回到網路主機商的後台,點選主機,再先用網頁版本的終端機連入主機

如下圖

連進去以後長這樣,這是AWS Lightsail,不同主機商連進去以後長得不一樣。

3.將自己的公鑰放到指定檔案內

接著執行以下指令

cd ~/.ssh
ls
sudo nano authorized_keys 

因為我們下了指令用nano文字編輯器,開了authorized_keys ,畫面會像下圖這樣,再來先將自己的公鑰 id_rsa.pub 的那串公鑰亂碼,貼到這檔案的第二列。

按下Ctrl + O 儲存 ,再按下 Ctrl + X 離開。大功告成。

什麼?!! 你無法複製貼上??公鑰貼不上去?

沒關係,因為你用的是AWS Lightsail網頁終端機,你電腦剪貼簿裡面的字串,有可能跨不過去瀏覽器內的系統內。因此你可以使用右下角的貼上 ICON。如下圖紅色框框。

點開後就能夠貼上你的公鑰,若是Windows的作業系統裡面的瀏覽器,放完字串後,可嘗試點滑鼠右鍵或中鍵,讓瀏覽器把你的字串傳入主機的系統中。如此一來應該就能正常貼公鑰到authorized_keys 內了。

4.直接透過ssh 連進去主機內

到這邊,就馬上試試看吧

在自己本機的終端機打入

ssh <username>@<ip>

<username> 自己換為你的帳號,若為AWS Lightsail 預設管理員名稱為 bitnami

<ip>換成你自己的主機ip

第一次登入的時候,你的終端機程式會問你,這主機你是不是確定是你要連進去的,按下YES ,以後就不會再出現這問句了。

以後只要在終端機輸入 ssh yourname@255.255.255.255 (換成你的帳號跟ip)

按下Enter ,咻! 秒進主機,感覺真好。

結論:

SSH工具在架站的維護與安裝軟體上是不可或缺的工具,回想幾年前剛接觸這樣的工具的時候,覺得非常熟悉卻又非常生硬,熟悉的是這樣的命令提示字元的終端機就是跟DOS時代一樣的command line工具。 生硬的是,ssh進去的系統原來是linux系統。網站運營還是以linux base的程式為大宗,因此從ssh這樣的工具,慢慢的往linux領域慢慢熟悉,也是相當好的安排。

無論如何,今天教大家的SSH連線主機的方法,也是業界常用的站長基本工具,只能說,若要架網站,把後台都掌握,不得不學。

參考: (慎入很硬的文章,不適合設計人員閱讀)

https://jennycodes.me/posts/security-ssh

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *