雲端小白的電子機養殖計畫

本系列文章預計規劃3~4篇,講述怎麼在雲端佈置訓練環境,如果你也興趣投入這個領域,就來一起學習,一起逐一攻破各個知識點吧

Even Pan
May 1, 2022

緣起

當我一開始跟朋友分享我開始租機器架設自己的雲端服務,我朋友馬上進來幫我進行機器的弱點掃描,赫然發現,我將一個充滿漏洞的機器暴露在固定IP的公網上,在我虛心地請教下了解到機器端需要講密碼登入鎖起來只留ssh-key登入的方式(本日進度),以及需要透過https來導流只透給內部的port號,如此一來才能確保伺服器與客戶間通訊的加密,不會被惡意的路由器監聽,也可以避免別人透過指定的port好攻擊你的機器(隨後的文章)

目標

透過這篇文章,我會教你買自己的網域,買自己的機器,並且將vscode服務架設在雲端伺服器上。讓你可以一台ipad就可以在任何可以聯網的地方開發。未來預計用同一台機器起部落格服務。以及起vpn的跳板,讓你的netflix 可以繼續帳號多人共用。

Photo by NASA on Unsplash

就讓我一步一步來執行吧

既然是要講怎麼租一台機器來跑服務,那就從租機器開始吧

下面示範怎麼租linode虛擬機:

  1. 打開linode網頁
  2. 綁定google帳號註冊
  3. 進到create linode頁面

4. 點選右上角create Linode

5. image 選上自己喜歡的作業系統,這裡以ubuntu 18.04為例

a. 在這我們選擇了作業系統

b. 選了離我們最近的資料中心tokyo

c. linode計畫我們選了最便宜的Share CPU中的 nanodo 1G

然後下方就設定一下密碼,label 可以標籤一下這台機器的用途,多台機器的時候就不會混淆

要加錢的不選,private ip 會讓你外網的電腦看不見,也暫時不是我們要的

沒什麼問題就按下右邊的create linode來創建機器

過個30秒你就會發現你的機器已經建立好了

這時候你可以用右上角的SSH Access

比如我的是這個ssh root@139.162.116.230

我們到本機的terminal輸入這行指令(ip記得換成自己剛申請機器的ip歐)

這個時候就要記得打yes,這裡我多做了一件事情就是我有加入ssh 所以實際上我打的是ssh key的密碼,如果你沒有加入的話,就是打剛剛你自己設定的root密碼

接下來我們來妥善我們的環境設定

首先用root登入與安裝服務是有很高的風險的,我們需要:

  • 創建user
  • ssh複製key到虛擬機
  • 把密碼登錄關閉

創建使用者

透過SSH登入後,下方操作在虛擬機內

其中第三點需要多介紹一下

原本的這個sh 是一種最入門的shell 用起來很討厭 1. 沒有語法上色 2. 沒有tab自動補全,總之是難用的集合,建議在這邊改成bash

vim 進去後 先 輸入大寫G到最後一行 用l 移動游標到”s”的上面(如圖所示)後輸入i 來進行插入

調整完的結果如下所示

這時候可以輸入ESC鍵離開insert 並輸入:wq 按下enter 這樣就改好了

想要檢查的話可以輸入

cat /etc/passwd | grep even username 記得換成自己的

有時候看到shell 設定跑掉可以打上面這行來檢查一下

接著我們設定even 這個user 可以直接透過ssh-key的方式連進來,以後就不用打密碼,也可以在設定後就把密碼登入的方式鎖起來

回到本機進行操作

注意最上面這邊由於我已經key-gen過了我就不重新產生。可以看到一個ctrl+c的abort,如果你從來沒有產生過你應該會看到不一樣的指令才對

第一次copy的時候要輸入密碼剛剛上面user設定的密碼(我的passwd even密碼)

產生Key
複製pub-key到虛擬機
確認最新的登入免密碼

# 登進去新的user 之後可以用下面這行程式碼檢查有沒有問題

指令 sudo cat ~/.ssh/authorized_keys

確認沒問題(機器名稱是自己本地的名稱)我們就可以來把使用者密碼登入關掉了

指令 sudo vim /etc/ssh/sshd_config

vim 裡面打/ 可以進行搜尋 我們目標是把這個PasswordAuthentication如果有註解要拿掉 並且設定為no

找到目標按 enter 一樣使用 l 移動到 s 之後使用 i 進行刪除與輸入no

調整好之後一樣esc :wq離開這裡

並輸入下一行 sudo systemctl restart ssh.service

至此你已經可以享受免密碼登入拉~

本章到此結束,我們租了虛擬機,創建新的使用者並調整了權限,同時透過ssh登入並關閉密碼登入的方式。現在我們在user登入端的曝險面積已經縮小很多。下一篇文章我們來講怎麼啟動一個服務吧。

Photo by Ian Battaglia on Unsplash

--

--

Even Pan
Even Pan

Written by Even Pan

Technical blogger who like to held hands-on ml workshops. Fast-paced learner and highly interested in the latest technologies.

No responses yet