Node.js: 設定 SSH 金鑰

此文件屬於使用 GitHub Actions 部署指南的一部分。請在此處查看完整指南:學習如何利用 GitHub Actions 部署您的 Node.js 程式碼

👋 歡迎瀏覽 Stackhero 文件!

Stackhero 為您提供即用型 Node.js cloud 環境,助您加快開發進度:

  • 只需一個簡單的 git push,即可於數秒內部署至生產環境,無需額外工具或手動設定。
  • 可自訂您的網域名稱,並享有自動配置 HTTPS 憑證,讓您的應用程式安全無憂,無需額外設定。
  • 自動備份一鍵更新可預測的收費模式,讓您專注於開發功能,Stackhero 會為您管理基礎設施。
  • 建基於專屬私有基礎設施,確保穩定效能及高度安全。

節省時間,減少營運負擔:您只需幾分鐘,即可於 Stackhero 的 Node.js cloud hosting 上運行您的應用程式。

SSH 金鑰讓 GitHub Actions 在部署程式碼時能安全地連接到您的 Node.js 服務。這是保護您 Stackhero 服務的重要步驟。

在您的電腦上,您可以使用以下指令產生新的 SSH 金鑰:

ssh-keygen -C "" -f /tmp/ssh_key -N ""

要查看剛剛產生的公鑰,請執行:

cat /tmp/ssh_key.pub

接著,請到 Stackhero 控制台,選擇您的 production Node.js 服務,然後點擊 Configure 按鈕。

取得服務設定取得服務設定

請依照以下步驟操作:

  1. SSH public keys 區塊,點擊 Add a public key
  2. Description 欄位輸入 GitHub Action
  3. Key 欄位貼上您剛才複製的公鑰。

取得服務設定取得服務設定

現在,請切換到 GitHub,打開您的專案 repository。點擊 Settings,然後選擇 Environments,再選擇 New environment

設定 GitHub 環境設定 GitHub 環境

Name 欄位輸入「production」,然後確認。

設定環境設定環境

點擊 No restriction 按鈕,然後選擇 Selected branches and tags

設定環境限制設定環境限制

接著點擊 Add deployment branch or tag rule,在 Name pattern 欄位輸入「production」,然後點擊 Add rule

設定環境分支設定環境分支

設定環境分支設定環境分支

Environment secrets 區塊,點擊 Add secret

新增 secret新增 secret

要取得您產生的私鑰,請執行:

cat /tmp/ssh_key

在 GitHub 上,請將 Name 設為 STACKHERO_SSH_PRIVATE_KEY,並將您的私鑰貼到 Value 欄位。

設定 SSH 私鑰 secret設定 SSH 私鑰 secret

然後,在 Environment variables 區塊,點擊 Add variable

設定變數設定變數

Name 設為 STACKHERO_ENDPOINT,並將您的 Node.js 服務 endpoint 貼到 Value 欄位。您可以在 Stackhero 控制台找到這個 endpoint。

設定 endpoint 變數設定 endpoint 變數

如果您已為服務設定自訂網域名稱,請使用您的自訂網域,而非 <XXXXXX>.stackhero-network.com。

為了安全起見,建議您在 Stackhero 及 GitHub 設定完成後,將電腦上的 SSH 金鑰刪除:

rm /tmp/ssh_key /tmp/ssh_key.pub