實用指南/免費 Ubuntu VPS

免費 Ubuntu VPS:從 SSH 金鑰到連線

使用符合 Oracle Always Free 資格的執行個體,建立可公開連線的 Ubuntu Linux VPS。本指南從保存 SSH 金鑰開始,到從你的電腦驗證連線為止;前提是帳戶已獲准、有可用容量,而且所選資源有足夠未使用配額。

・更新日期:・閱讀時間:約 6 分鐘

本篇目錄

確認帳戶並選擇一台小型執行個體

本路徑在帳戶主區域使用一台 AMD VM.Standard.E2.1.Micro、1 GB RAM,以及 Ubuntu 24.04 LTS x86 映像檔。這是小型管理練習環境,不是測得的容量建議。Oracle 將 Ubuntu 列為適用映像檔;仍需在主控台確認具體映像檔與機型的免費資格。

你需要管理執行個體、網路及主控台連線的權限,電腦也需具備 OpenSSH。以下本機指令使用 Linux、macOS 或 WSL shell。不保證註冊、容量或持續可用性,閒置執行個體可能被回收。選擇前請先比較免費 VPS 配額與試用方案。

啟動前建立並保存 SSH 金鑰

在你的電腦執行下列指令。若檔名已存在,請另選名稱並一致替換,避免覆寫。依提示設定通關密語。

mkdir -p ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -b 3072 -f ~/.ssh/oci-ubuntu-free
chmod 600 ~/.ssh/oci-ubuntu-free
cat ~/.ssh/oci-ubuntu-free.pub

妥善保存私鑰;建立執行個體時只上傳 .pub 公鑰。公鑰用來判斷誰能登入;稍後驗證的伺服器主機金鑰用來辨識連線對象,兩者不同。

建立資源清單,記錄 compartment、區域、執行個體名稱與識別碼。ubuntu-free-ssh 這個範例名稱僅供此次新實驗使用;名稱本身未必能唯一識別 OCI 資源。

建立公開子網路並限制 SSH

在 Networking 中為本實驗建立專用 VCN,例如 10.20.0.0/16,以及區域公開子網路,例如 10.20.1.0/24。若將連接現有網路,請選擇不重疊的範圍。在該 VCN 建立並啟用網際網路閘道。

在子網路相關的路由表中,新增目的地 0.0.0.0/0,目標為該網際網路閘道。執行個體還需要公開 IPv4 位址;只有路由不會自動取得位址。

在子網路安全清單設定具狀態的入站規則:來源 CIDR 為目前公開 IPv4 加上 /32,協定 TCP,來源連接埠 All,目的連接埠 22。使用網際網路看到的位址,不是私人 Wi-Fi 位址。保留必要的預設出站與 ICMP 規則。

替換這份專用清單中預設對全球開放的 SSH 規則。較窄規則不會覆蓋另一條寬鬆規則;要檢查所有附加安全清單及 NSG。本例不新增 NSG、NAT 閘道或負載平衡器。工作站公開位址改變後,更新 /32 規則。

建立符合資格的 Ubuntu 執行個體

在主區域開啟 Compute、Instances、Create instance,命名為 ubuntu-free-ssh,並選擇預定 compartment。建立前逐項檢視:

小螢幕可左右捲動表格,查看所有欄位。

設定本指南的選擇
映像檔符合資格的 Canonical Ubuntu 24.04 LTS x86/amd64 平台映像檔
機型VM.Standard.E2.1.Micro,AMD,1 GB RAM
開機磁碟區50 GB;保留適用效能設定並檢查未使用配額
網路專用公開子網路,並配置公開 IPv4 位址
SSH 金鑰上傳 oci-ubuntu-free.pub 公鑰
附加項目不加額外磁碟區、付費映像檔軟體或選用代管服務

Oracle 文件列出主區域 Always Free 開機/區塊儲存合計 200 GB,既有磁碟區也要計入。檢查每項資源資格及估價;試用額度抵銷費用不代表持續免費。不清楚時,參考免費主機限制與計費清單。

將以下內容存成電腦上的文字檔,於 Advanced options、Management、Initialization script 上傳。它會啟用 cloud-init 在主控台輸出公開主機金鑰與指紋,供下一步驗證;內容沒有私鑰。

#cloud-config
ssh:
  emit_keys_to_console: true

確認設定後再建立。若沒有符合資格的容量,請停止並重新評估,避免誤選付費替代機型。狀態為 Running 後,從詳細資料記錄執行個體 OCID、開機磁碟區 OCID 及公開 IPv4。

透過 OCI 主控台歷程驗證客體主機金鑰

接受第一次 SSH 提示前,登入 OCI Console 並開啟這個確切執行個體。在 OS Management 或 Resources 下開啟 Console connection,選擇 Launch Cloud Shell connection,建立擷取主控台歷程所需的連線;帳戶需有對應權限。

開啟 Console history,再選 View current history,儲存或下載首次開機輸出。找到 cloud-init 產生的 SSH HOST KEY FINGERPRINTS 區段,記錄客體主機金鑰的 SHA256 指紋及類型,不要與已授權使用者金鑰的指紋混淆。

Console connection 資源顯示的指紋辨識的是 OCI 主控台端點,不是客體一般 SSH 端點。下一步應使用開機輸出中的客體主機金鑰紀錄。若缺少紀錄,先依 OCI 文件的主控台復原程序處理,不要以未驗證的 ssh-keyscan 結果替代。

從電腦連線並檢查 Ubuntu

在工作站終端機執行下列指令,將 203.0.113.20 換成執行個體的公開 IPv4;該範例位址保留給文件使用。比對提示中的金鑰類型、SHA256 指紋與開機紀錄,只有相符才接受。

ssh -o StrictHostKeyChecking=ask -i ~/.ssh/oci-ubuntu-free ubuntu@203.0.113.20

Ubuntu 平台映像檔的使用者名稱是 ubuntu,不是 opc。登入後,在 VPS 執行以下唯讀檢查:

cloud-init status --wait
cat /etc/os-release
dpkg --print-architecture
free -h
df -h /
sudo ss -lntp
sudo iptables -S

確認初始化完成、系統為 Ubuntu 24.04、架構為 amd64、記憶體及磁碟符合預期,而且 SSH 服務正在監聽。從工作站成功連線能驗證這條公開 SSH 路徑,但不能證明應用程式容量,也不會發布 HTTP 網站。

更新新伺服器並保留原有防火牆

cloud-init 成功完成後,更新套件資訊,確認前先檢視升級內容:

sudo apt update
sudo apt upgrade

保留原有工作階段,驗證第二次 SSH 登入。若更新需要重新啟動,在伺服器仍可丟棄時執行 sudo reboot,恢復後重新連線並重做基本檢查。重新啟動會主動中斷 SSH。

不要在這個 OCI Ubuntu 映像檔安裝或啟用 UFW。Oracle 與 Canonical 文件說明,它可能與映像檔持久化防火牆設定及必要 iSCSI 規則衝突。保留那些規則。之後架設網站時,需同時設定 OCI 網路權限及相容的客體防火牆規則。

小螢幕可左右捲動表格,查看所有欄位。

問題優先檢查
SSH timeout公開 IPv4、閘道路由、目前來源 /32 及所有網路規則
Permission denied (publickey)ubuntu 使用者、所選私鑰及已上傳公鑰
主機金鑰不符執行個體身分及可信任開機紀錄;不要盲目刪除 known_hosts 項目
初始化或套件錯誤主控台歷程、cloud-init 狀態及套件庫連線

若仍無法存取,請用確切錯誤訊息及可信任主控台診斷 SSH 連線,調查期間保留映像檔防火牆。

下一階段參考網站部署指南,並遵守其中的供應商專屬防火牆要求。

保存復原副本,或移除此特定實驗

開始依賴 VPS 前,將應用程式資料與重建筆記存於其他位置並測試還原,讓重要工作能在免費執行個體消失後復原。目前檢查只證明管理存取可用,不代表正式營運已就緒。

放入網站檔案後,在另一台電腦演練檔案備份還原。這只能驗證所選檔案,不能取代其他應用程式資料的復原規劃。

結束時先匯出必要內容。在已記錄 compartment 中,以 OCID 選取確切的 ubuntu-free-ssh 執行個體並選 Terminate。預設會保留開機磁碟區;只有確認該磁碟區不再需要、且匯出已驗證時,才選永久刪除。

依清單檢查保留磁碟區、備份、位址及主控台連線。確認沒有其他資源使用後,才移除專用子網路與閘道。不要為整理單一實驗而刪除整個帳戶的資源。之後重新檢查剩餘資源與用量。

常見問題

這是公開 VPS,還是本機 Ubuntu VM?

這是由供應商託管且有公開位址的 VM。SSH 刻意限制為工作站的公開 IP,不需要你的電腦一直開機。

免費機型沒有容量怎麼辦?

等待,或重新評估另一個有文件說明的方案。不要假設其他機型、區域或更大配置也符合資格。比較指南提供替代選項,但不保證帳戶核准或容量。

只在自己的帳戶與本實驗資源操作。建立資格、容量及免費配額以帳戶實際顯示為準。

官方資料來源

  1. 文件 1:docs.oracle.com
  2. 文件 2:docs.oracle.com
  3. 文件 3:docs.oracle.com
  4. 文件 4:docs.oracle.com
  5. 文件 5:docs.oracle.com
  6. 文件 6:docs.oracle.com
  7. 文件 7:docs.oracle.com
  8. 文件 8:docs.oracle.com
  9. 文件 9:docs.oracle.com
  10. 文件 10:docs.cloud-init.io
  11. 文件 11:docs.oracle.com
  12. 文件 12:documentation.ubuntu.com
  13. 文件 13:docs.oracle.com

相關指南