Secure Shell(安全外殼協定,簡稱SSH)
是一種加密的網路傳輸協定
這個協定會用公鑰跟私鑰,來處理登入程序
簡單來說,就很像一個暗號、公式
電腦會幫你把這個暗號再加密
然後本機跟遠端交換這些加密資訊之後
確認彼此身份沒錯,就開始連線
這邊直接使用Google教學
有建議一些步驟,我這邊講最簡單的指令
想深入了解的話可以參考下列連結
步驟一:產生SSH金鑰
在本機終端機輸入指令,產生一組SSH金鑰
ssh-keygen -t rsa
輸入之後會問你要存在哪、要不要設密碼之類
都按enter即可跳過,然後就會顯示下面這串,代表存好金鑰了~
Your identification has been saved in /Users/[你的使用者名稱]/.ssh/id_rsa.
Your public key has been saved in /Users/[你的使用者名稱]/.ssh/id_rsa.pub.
雖Google教學建議是ssh-keygen -t rsa -f ~/.ssh/my-ssh-key -C [USERNAME]
其中-f是指定金鑰名稱、-C是標記使用者名稱
注意到,如果沒有指定名稱及檔案位置的話
系統預設是在 .ssh 資料夾內產生 id_rsa、id_rsa.pub
pub這個檔案就是紀錄公鑰
步驟二:把公鑰貼上GCP
首先 在本機終端機查看公鑰檔案
cat ~/.ssh/id_rsa.pub
把整串複製起來,然後打開GCE的頁面
在左邊工具列找到”中繼資料”跟”編輯”
按編輯之後,點選輸入新項目
把剛剛那個公鑰檔案內容複製貼上
這邊要做個小動作,就是把最後的使用者名稱改掉
本機公鑰的使用者預設會像是-> KC@MacBook.local
把這段拿掉,換成你的google使用者名稱(如下圖紅線處就是我的帳號)
後按儲存、然後重啟GCE(如下圖的重設),搞定
步驟三:試著登入看看
ssh [你的google帳號]@[外部IP]
下圖就是我的範例,第一次登入會要你確認,輸入yes之後,就會登入囉
之後你當前的終端機的前置符號就會變成[你的google帳號]@[伺服器名稱]:
像是這樣,就代表你已經成功進入你的VM裡了
步驟四:更新VM環境
成功登入VM之後,就順便把系統更新一下
最快的方法就是輸入
sudo apt-get upgrade -y
-y的意思就是當遇到任何要確認的事情就自動幫我y吧
其他參考
順便設定一下時區
sudo dpkg-reconfigure tzdata
選擇“Asia/Taipei”
步驟五:準備VM的Ruby
當你已經有一個可以work的VM
就可以把Ruby及伺服器都安裝好
參考iHower大大
因為已經有教學了,所以這邊簡單貼碼帶過
安裝Ruby,在VM內陸續執行以下每行
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.4 ruby2.4-dev
ruby -v
brightbox是間雲端服務公司,已經把Ruby打包好了 方便Ubuntu安裝
注意到我目前是用ruby2.4,如果你使用不同版本,記得修改安裝版號
最後一行ruby -v則是用來確認安裝好Ruby了(會顯示出當前ruby版號)
然後記得安裝兩項rails部署過程中會用到的工具
在VM內陸續執行以下每行
sudo gem install bundler
sudo apt-get install nodejs
步驟六:在VM準備SQL
安裝SQL,在VM內陸續執行以下每行
sudo apt-get install mysql-common mysql-client libmysqlclient-dev mysql-server
安裝中會要求你輸入密碼,要把密碼記住喔~
安裝完之後進入mysql consol,輸入密碼後登入console
mysql -u root -p
創建資料庫(database)
CREATE DATABASE [databasename] CHARACTER SET utf8mb4;
[databasename]那邊隨便打個好認的名字
之後我們會在rails專案中指定這個資料庫名字
然後輸入quit結束mysql console
步驟七:在VM內準備Nginx + Passenger
最後安裝 Nginx + Passenger (就是網站伺服器的功能)
這邊有點複雜,就直接按照iHower大大的指令完成吧
OK之後,在你的瀏覽器中 輸入VM的IP位置
(注意要用HTTP,而不是HTTPS)
看到下圖,就代表完成Nginx的配置
到這邊搞定VM的環境
大家可能注意到沒有安裝Rails
因為Rails將一併在下一篇的自動化部屬處理
下一篇見~