前言:
這幾年我們學會了做網頁設計,接下來,無論是網頁的html檔案要放在哪?或是運作的wordpress 維護與故障排除,我們都需要連線進去網頁主機,一般最傳統的方法,就是用FTP把檔案上傳。但漸漸地你會發現,CMS網站系統(如wordpress、Joomla、Opencart等)一定是需要連線到主機的系統裡面做操作。因此SSH這樣的工具,就變得非常重要與方便。
什麼是SSH? 看看維基百科怎麼說
SSH (Secure Shell)是一種加密的網路傳輸協定,可在不安全的網路中為網路服務提供安全的傳輸環境。SSH通過在網路中建立安全隧道來實現SSH客戶端與伺服器之間的連接。SSH最常見的用途是遠端登錄系統,人們通常利用SSH來傳輸命令行介面和遠端執行命令。
Public Key Crytography (PK crypto)
而傳統使用SSH連線到網頁主機,常常需要打帳號密碼,這往往也是造成網站被入侵的原因之一。因為很多木馬程式都在監聽你的鍵盤按鍵,所以使用本文章的方法,直接透過公、私鑰認證的方法,直接完成連線認證,快速又安全。
方法流程如下:
- 先製作本機電腦的私鑰與公鑰
- 到主機商的後台使用網頁終端機連入主機
- 將自己的公鑰放到指定檔案內
- 直接透過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連線主機的方法,也是業界常用的站長基本工具,只能說,若要架網站,把後台都掌握,不得不學。
參考: (慎入很硬的文章,不適合設計人員閱讀)