以初學者的角度,來看待電腦教學這回事。

標籤: VPS

GCP VM執行個體使用PuTTY SSH登入教學

在「如何架出安全性較高的網站?」一文中,我有介紹了一門Udemy的非常讚的架站教學課程「The Perfect Nginx Server – Ubuntu Edition」,在這門課程中,因為作者和我們使用的平台,會有略為不同,所以這部份的門檻,就要靠自己去跨越。

使用SSH登入VPS

這個是第一個門檻,因為作者所示範的VPS環境是「Vultr」,但我使用的是「GCP」,所以首先就要解決使用SSH登入VPS的問題,當然不是說Vultr不好,但如果受眾是台灣人的網站或服務,網站還是架在當地,連接的速度真的差很多,像Vultr的主機,離我們最近的是韓國、日本、新加坡,所以其實也都不怎麼合適。

但你還是可以當成練習來使用,作者也都有提供100美元(好像)的試用額度,

而我為什麼選擇GCP,因為他是Google,而且場地在彰化,最重要的是,大家都跳電斷網時,他們不會跳電,網路也不會中斷。

在GCP的虛擬機器管理頁面中,我們可以透過瀏覽器來開啟SSH連線,如下圖:

這樣雖然可以,但連線的方式太慢,這適合用在最終無法連進虛擬機器時的解決方式,而我們平常最理想的連接方式,還是使用「PuTTY」這個小工具程式來連線,連接速度才快。

現在在網站上找到的相關資訊,因為GCP一直在改版,所以這些文章其實都有點不適用了,不僅畫面不同,連能不能跟著做操作完都有問題。

所以現在2022年,我針對目前可以成功的方式,重新講解一次要怎麼做。

首先,先去下載「PuTTY」,在「PuTTY下載」頁面中,根據自己的作業系統平台,點擊該項目,例如我是使用Windows 11,我就點「64-bit x86」這個。

MSI (‘Windows Installer’) 64-bit x86 – putty-64bit-0.76-installer.msi

下載後再把它安裝好。

PuTTY Key Generator

首先,我們會先使用PuTTY Key Generator,也就是「PtTTYgen」這個工具,來產生金鑰檔案,如下圖:

Step 1. 開啟程式之後,是長這樣,維持預設值之後,請直接點擊〔Generate〕,如下圖:

在產生的這段時間,請使用滑鼠游標在程式視窗範圍內移動,程式應該是利用滑鼠移動的位置,來當做亂數的種子,所以你不動滑鼠的話,是沒辦法運算完的。整個產生的時間大約1、2秒鐘而已,要視自己電腦的配備而定。

Step 2. 產生完了之後,畫面是長這個樣子,如下圖:

Step 3. 在這個畫面中,我們要修正「Key comment」這個資訊,請修改成你使用GCP的帳戶名稱,例如我是用我的Google帳號「changyang319@gmail.com」來使用GCP服務,所以我的「key comment」就是輸入「changyang319@gmail.com」,如下圖:

Step 4. 輸入完畢後,請點擊〔Save private key〕,並在警告對話盒「Are you sure you want to save this key without a passphrase to protect it ?」中點擊〔是〕,然後找個位置存放這個private key的金鑰檔案,如下圖:

Step 5. 最後,把最上方「Key」裡的public key內容,整個複製下來,這個內容有點長,要確實的圈選整段內容,如下圖:

這個Public Key,我們會在下一段內容用到。

Google Cloud Platform (GCP)後台

Step 1. 來到管理後台,請切換到你的「VM執行個體」頁面,並點擊你想要登入的「執行個體」,以我這邊來說,我是想要設定「instance-uwsgi」這部vm,如下圖:

※ 請注意到這個VM項目後方的「外部IP」資訊,這項資訊會在下一段用到。

Step 2. 請確定VM在「停止」的狀態之下,再點擊上方的「編輯」,如下圖:

(這張圖下方的狀態是「執行中」,這樣是不行的,必需是已停止才可以,因為我實在懶的再抓圖了…)

Step 3. 拉動卷軸,移到「安全殼層金鑰」的部份,點擊「+新增項目」,如下圖:

Step 4. 接著在這邊貼上在上一段所複製的Public金鑰,如下圖:

貼上之後,再移至最下方,並點擊〔儲存〕。

儲存完成後,再來到「安全殼層金鑰」來看,就可以看到有一個以你Email名稱的鍵值在這邊,如下圖:

做到這邊,就代表已經完成GCP的設定。請複製好前面提到的「外部IP」位址,我們會在下一段用到。

PuTTY

最後,就要來做個總結了,打開「PuTTY」連線程式,並在左方的「Category」中,點選「Connection \ SSH \ Auth」,並在下方的「Private key file for authentication」中,選取你使用PuTTYgen產生出來的金鑰,並存下來的private key檔案位置,如下圖:

接著點擊「Category」中的「Session」,在「Host Name」中,填入「user_name@外部IP」,以我的例子來說,就是「changyang319@35.194.202.101」,如下圖:

都填好之後,你可以在「Saved Sessions」填入一個名稱,然後點擊右方的〔Save〕,來把設定值存起來,像我就存了一個叫「gcp_uwsgi」的設定檔。

最後點擊下方的〔Open〕,初次打開時,會出現「PuTTY Security Alert」的對話盒,請點擊〔Accept〕,如下圖:

如果設定成功的話,就會直接連接進入GCP的VM裡,如下圖:

整個流程就大概是這樣。

如何架出安全性較高的網站?

架站容易維護難,網路上有非常多什麼10分鐘架站教學、快速架站教學,說真的,那個看看就好,你以為架好之後,就能太平盛事到永久嗎?一知半懂的去架站,真的是一件很危險的事。

我這個業餘研究架站的人,至少超過十年以上,以前都是用一些免費架站工具像「Kloxo」及「ZPanel」,後來這幾個工具也相繼沒有維護了,「免費」就是這樣,沒有營利,怎麼會有人去維護呢?

「免費」的最貴,這個是真理,我用免費的工具全自動架出來的網站,先不論「效率」的問題,最嚴重的是很容易被「駭」,駭客們進出我的網站,根本就跟上廁所一樣簡單,我看大便都還沒出來,就已經把有害程式拉進我的網站了。

每次等你發現了,往往都來不及了,最後都會導致我的網站被Google Chrome當成有害網域。

所以我一直到2019年4月份時,才開始花錢訂閱了「Plesk架站工具」,之後就真的沒再發生過被植入有害程式的事件,下圖可以看到我的訂閱紀錄,我是真的有買,不是來業配的。

就這樣訂閱了快三年的時候,又開始想要省下這筆錢,想要自己架站,所以就趁著特價的時候,花了230元買了Udemy的一個課程「The Perfect Nginx Server – Ubuntu Edition」。

這個我也是真的是有買,但你如果透過這個連結購買的話,我可以賺一點「微薄」的分潤金,而當時空前絕後的特價230元,現在很難再看到了。

沒想到買了之後,就把每個月Plesk的USD$ 11.55給省下來了,跟著教學所架出來的網站,不僅安全性高,效率也高,之前要VM四核才跑的起來的網站,現在只要一核心的CPU就非常足夠了。

我要是早點學會這個課程的知識,我就不會在去年時,又再跟Google續約了3年的「2核心、7.5GB記憶體」的承諾使用折扣。

Nginx Server 課程介紹

在看過課程「The Perfect Nginx Server – Ubuntu Edition」之前的我,原本以為「手動」架站很麻煩,所以我之前才只能一直依賴這些架站工具。

但課程作者一直鼓勵大家要用「手動」的方式來架站,實際跟著操作之後才發現到,就如作者所說,用命令列的方式來架站,真的一點都不難。

實際去操作之後才發現到,我們平常用的架站工具,最終也是用來產生這些設定檔而已。

然後課程使用的Ubuntu來架Nginx Web Server,而VPS是使用國外一家叫「VULTR」來做示範。

雖然跟我在使用的CentOS不同,而且我VPS是使用「Google Cloud Platform (GCP)」,但還好影響不大,我都能順利的舉一反三,轉換過去,相信大家應該也都能轉換到自己的慣用服務。

接著我簡單的介紹一下這個課程所包括的內容。

作者講的是比較慢的英文,我雖然英聽很差,只聽的懂大概,但看著他操作,也大致上知道他在說些什麼,這也是影片教學的好處,並非都只要中文不可。

要不然230元的英文課程,在中文的課程找的到嗎?

Linux Essential Skills

課程一開始,會有一節「Linux Essential Skills」,先教一些之後課程會用到的基本Linux指令。

這節我是直接跳過,因為我Linux之前已經有接觸過,只要你會用 cd、mkdir、rm、mv、cp、chmod、chown,另外再會一種Text Editor,就大致上沒問題了。

Text Editor課程使用的是「nano」,而我慣用的Text Editor是「vi」。

如果你完全沒接觸過Linux,這節就不要跳過,都不會的話,甚至你可能沒辦法架站。

Ubuntu、Nginx、MariaDB及PHP的安裝與設定

安裝Ubuntu都很簡單,難是難在設定,然後要設定哪些東西。這邊會教你設定出一台「安全」的Server,像是Server的更新、防火牆開啟,打開Fail2Ban,然後用SSH Key來做登入。

在進行完作業系統的設定之後,就會開始安裝及最佳化Nginx、MariaDB、PHP7.4。

設定單一及多個網站

接著最核心的架站教學,會教你「手動」的設定nginx的設定檔、新增MariaDB資料庫,了解之後,無論是靜態html,或Wordpress這類的網站,都沒有問題。

也能自己自訂Server Block來自訂多個網站,也會教你用WPCLI這種命令列工具,來安裝Wordpress。

然後會有多個章節,提供多種保護的機制,用來保護我們的網站,只要照著操作,就能架出非常安全的網站。

SSL憑證設定

對於想要架https的網站,在這個章節時,就能很快學會,除了第一次的申請憑證,也包括日後的自動更新憑證,操作都非常的簡單。

WordPress的備份與還原

這個非常有用的章節,他會分別教你用外掛及用命令列的方式,來備份及還原網站或資料庫。

富盈數據「網站代管服務」終止

其實說來真的很巧,我在2021年12月中,學會了這個架站的知識,沒想到在12月底時,在「富盈數據」的「網站代管服務」居然要終止了,想當然爾,我當然是拉回來自己管理了。

之前會讓富盈管理,是因為架站容易管理難,在申請了要自己管理後,富盈數據排定了備份的日期,按約定日把備份好的網站檔案及資料庫檔交給了我。

設定好了DNS、Nginx、匯入DB、SSL憑證,很快的我就把網站給搞定了。

Powered by WordPress & Theme by Anders Norén