略懂略懂後端程式後,還是要實際開個主機部屬起來才有感覺。接下來幾篇文章會講解如何開一臺雲端 VPS 主機,以及怎麼設定環境、部屬程式碼、維護線上服務。

接下來 VPS 主機的文章,會以 DigitalOcean 為主。如果你還沒有 DigitalOcean 服務,可以 從這裡註冊,並獲得 50 美金額度;如果你不清楚怎麼架設,可以參考 這篇文章,記得系統選 Ubuntu、地區選新加坡,就可以免費用一個月。

小提醒,註冊 DigitalOcean 的時候,記得在 Authentication 的部分選擇 One-time password 而不是 SSH Keys。後面會再提到為什麼。
do_password

為什麼不用 WSL 就好,而要特別開一臺 VPS 主機呢?
一方面是 WSL 的 Linux 沒辦法設定成開機自動啟動,許多配置和真正的伺服器都有一點差異。另一方面是要付錢的東西會比較能 push 自己去學。這次剛好有免費的 50 USD 額度,逼自己在一個月內學點東西吧!

你也可以使用其他的 VPS 服務,總之等你收到登入主機的 IP、帳號和密碼以後,再繼續往下走。

do_info

拿到帳號密碼後,就可以打開你的 WSL,透過 SSH 登入啦:

ssh root@209.97.165.221    # 用你收到的 IP 登入

當提示是否接受指紋的時候,輸入 yes。DigitalOcean 會在第一次登入時確認你的現有密碼(也就是 email 收到的那個密碼),並要求你輸入新密碼及確認密碼,之後下次就必須以新密碼登入了。

建立使用者帳號

就像我們在 操作 Linux 的基本技巧 一文中提到的:Linux 使用者鮮少會直接操作 root 帳號,所以我們要先開一個使用者帳號。例如我想要使用者帳號叫 noob,就可以這樣操作:

adduser noob

程式會提示輸入密碼,剩下的欄位都可以直接按 Enter 跳過不填。

接著我們要讓這支帳號也能有使用 sudo 的權限,所以我們要將這支帳號加入 sudo 群組:

usermod -aG sudo noob

你可以嘗試重新開一個 WSL 視窗,並用新的帳號連線進來看看:

ssh noob@209.97.165.221    # 用你的新帳號 + 你剛開的主機的 IP

應該可以順利輸入新密碼連線,並且可以順利執行這個指令:

sudo apt-get update

成功的話你會看到 apt-get 開始更新。如果看到 noob is not in the sudoers file. This incident will be reported.,可能是你設定失敗了,請回到 usermod 的地方重新把使用者加入 sudo 群組。

設定 SSH,禁止 root 登入

除了平常不使用 root 帳號以外,我們也要禁止 SSH 使用 root 帳號登入,避免駭客猜中你的 root 密碼!

請先確保你已經可以使用新開的帳號登入主機,不然等等封住 root 帳號自己也進不去喔!

還記得之前說過許多設定檔會放在 /etc 資料夾中嗎,這次要改的 SSH 設定檔就是在 /etc/ssh/sshd_config 中喔!

首先用 nano 編輯器打開這個檔案:

sudo nano /etc/ssh/sshd_config

找到 PermitRootLogin 這行,把原先的 yes 改成 no。接著重啟 SSH 服務:

sudo service ssh restart

更新你的主機

最後,都設定完了以後,把你主機上的套件都更新一下吧!依序輸入這三個指令,可能會跑一段時間:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

到這邊就裝好你的第一臺主機了。接下來的文章會有更詳細的設定和程式部屬,建議在開始之前可以試著參考前面的文章,裝好 Fish shellNode.js,後面會比較好上手!

本篇文章同步發表在 iT邦幫忙