GCP帳號快速認證 谷歌雲伺服器登入教程
簡介
歡迎來到「谷歌雲伺服器登入教程」,這不是考古學,不用刷卡也不用挖地道,只要準備好一把 SSH 金鑰、一點耐心,以及偶爾按下 Enter 的勇氣,就能把你的本地電腦和 Google Cloud(以下簡稱 GCP)上的虛擬機(VM)連起來。本文以輕鬆幽默的口吻,帶你逐步完成從帳戶準備、VM 建立,到多種登入方式與排錯技巧,讓你在雲端操作時不再手忙腳亂。
準備工作
GCP帳號快速認證 帳戶與專案設定
首先,確保你有一個 Google 帳號,並在 Google Cloud Console(console.cloud.google.com)建立一個專案(Project)。為了開啟 Compute Engine(VM)功能,還要啟用結算(Billing),因為雲端服務需要吃飯錢——平時會有免費額度,但啟用帳單是必要步驟。
安裝 gcloud SDK(可選,但很方便)
gcloud SDK 是 Google 提供的命令列工具,能讓你直接在終端機建立、管理 VM,甚至用它來登入。安裝方式很簡單,官方文件步驟照著做即可。安裝完成後執行:
gcloud init
依提示登入 Google 帳戶並選擇專案。若你是重度終端機使用者,gcloud 會是你最好的朋友(或至少是個好室友)。
準備 SSH 金鑰
大多數情況下我們會使用 SSH 公/私鑰對來登入 VM。Linux 或 macOS 用戶可以在終端機產生金鑰:
ssh-keygen -t rsa -b 4096 -C "[email protected]" -f ~/.ssh/gcp_rsa
這會產生私鑰(~/.ssh/gcp_rsa)與公鑰(~/.ssh/gcp_rsa.pub)。私鑰務必保密,公鑰會上傳到 GCP。
在 Google Cloud 建立 VM
使用 Console(圖形介面)
打開 Console → Compute Engine → VM instances → Create Instance。選擇機器種類(例如 e2-micro,若你只想測試),設定地區、映像檔(作業系統,例如 Debian、Ubuntu),並在 Management 標籤或「安全性」設定中加入你的 SSH 公鑰(從 .pub 檔案複製內容)。
使用 gcloud 建立(範例)
gcloud compute instances create my-vm --zone=us-central1-a --machine-type=e2-micro --image-family=debian-11 --image-project=debian-cloud --metadata-from-file=ssh-keys=~/.ssh/gcp_rsa.pub
這行指令會建立名為 my-vm 的 VM,並把公鑰放到該 VM 的 metadata。建立完成後就可以登入了。
三種常見登入方法
1) 瀏覽器內嵌 SSH(最省事)
在 GCP Console 的 VM instances 頁面,找到你的 VM,按下「SSH」按鈕。瀏覽器會開一個視窗,直接以你的 Google 帳號進行驗證並登入。優點是免設定金鑰、免安裝工具;缺點是功能受限,不適合做大量檔案傳輸或複雜的端口轉發。
2) gcloud compute ssh(推薦給終端機愛好者)
如果已安裝 gcloud,可以用:
gcloud compute ssh my-vm --zone=us-central1-a
gcloud 會自動處理金鑰(若你沒設定金鑰,它會幫你生成並上傳到 metadata),並建立連線。若要指定私鑰檔案:
gcloud compute ssh my-vm --ssh-key-file=~/.ssh/gcp_rsa --zone=us-central1-a
這個方法整合度高,常用於開發與維運自動化腳本中。
3) 本地 SSH 客戶端(最傳統也最彈性)
使用本地終端機(Linux / macOS):
ssh -i ~/.ssh/gcp_rsa USER@EXTERNAL_IP
注意 USER 通常是建立金鑰時指定的使用者名稱(或映像檔預設的,如 ubuntu、debian、root 等),EXTERNAL_IP 是 VM 的外部 IP。若是 Windows 使用者,常見選擇有 PowerShell 的 ssh 或 PuTTY。若用 PuTTY,要先把 OpenSSH 私鑰轉成 PuTTY 的 .ppk 格式(用 PuTTYgen)。
金鑰、metadata 與 OS Login
專案與 VM 的 metadata
公鑰可以加在 VM 的 metadata(僅對該 VM 有效),也可以加在專案的 metadata(對該專案下所有 VM 生效)。在 Compute Engine → Metadata → SSH Keys 可以看到並管理這些金鑰。
OS Login(更現代、更安全)
如果你想用 IAM 來管理 SSH 存取,可以啟用 OS Login。啟用後,使用者的 SSH 權限會與 Google 帳號與 IAM 角色綁定,管理起來更集中、也更安全。開啟方式可在 VM 的 metadata 加上:
enable-oslogin=TRUE
然後在 IAM 中指派 roles/compute.osLogin 或 roles/compute.osAdminLogin 給使用者。
移除與更新金鑰
若密鑰被洩露,請立刻從 metadata 刪除該公鑰,並撤銷相關 IAM 權限,然後產生新金鑰上傳。不要用同一把金鑰到處亂插,否則被盜風險會像放飛機票一樣可怕。
設定防火牆與網路
允許 SSH 的防火牆規則
預設情況下,GCP 會有一個允許 tcp:22 的預設防火牆規則,但如果你的 VPC 被自訂規則限制,你需要手動允許。可以在 VPC network → Firewall rules 中新增:
Targets: all instances in the network Source IP ranges: 0.0.0.0/0 (或限定為你的 IP) Protocols and ports: tcp:22
小心:將來源設為 0.0.0.0/0 雖然方便,但不安全。建議限定為你的固定 IP 或使用 VPN。
私有 IP + Bastion Host(跳板機)
若你想要更安全的架構,可以把 VM 設為私有 IP,然後透過一台公開的 Bastion Host(跳板機)或 Cloud IAP 來登入。這樣可以把內部服務關在防火牆後,避開直接暴露到公網的風險。
常見錯誤與排錯技巧
連線被拒(Connection refused)
原因:SSH server 未在 VM 上啟動(rare,但可能),或防火牆封鎖。檢查 VM 是否在執行,查看防火牆規則是否允許 tcp:22,或使用瀏覽器 SSH 嘗試登入,以排除本地網路問題。
Permission denied (publickey)
原因大多為金鑰錯誤、使用者名稱錯誤或公鑰未正確上傳。檢查: - 私鑰檔案權限是否正確(chmod 600 ~/.ssh/gcp_rsa) - 私鑰與公鑰是否成對 - 登入時使用的使用者名稱是否正確(例如 ubuntu、debian、root) - 公鑰是否存在 VM / 專案 metadata 中
Timeout 或無回應
檢查外部 IP 是否正確、VM 是否啟動、網路路由是否有問題。用 ping、telnet 或 nc 測試 tcp:22 是否有回應。
安全最佳實務
- 不要使用密碼登入,禁用密碼驗證只允許金鑰登入。
- 定期輪替金鑰,私鑰若有疑慮立即撤銷。
- 限定 SSH 存取來源 IP,或使用 VPN / Bastion Host。
- 考慮啟用 OS Login,使 IAM 成為單一存取控制點。
- 使用兩步驟驗證(2FA)保護你的 Google 帳號。
- 記錄與監控:啟用 Cloud Audit Logs,關注可疑登入行為。
小結與快速參考
重點總整理,給你一張速查表,當你下一次要登入 GCP VM 時,一步步速拿出來對照:
# 建立金鑰 ssh-keygen -t rsa -b 4096 -f ~/.ssh/gcp_rsa # 使用 gcloud 上傳金鑰並建立 VM gcloud compute instances create my-vm --zone=Z --image-family=debian-11 --image-project=debian-cloud --metadata-from-file=ssh-keys=~/.ssh/gcp_rsa.pub # 用 gcloud 登入 gcloud compute ssh my-vm --zone=Z # 用本地 ssh 登入 ssh -i ~/.ssh/gcp_rsa USER@EXTERNAL_IP # 若用 PuTTY,先用 PuTTYgen 轉檔 # 防火牆檢查: 確認 tcp:22 允許來源 IP # 啟用 OS Login # 在 VM metadata 加上: enable-oslogin=TRUE
GCP帳號快速認證 最後一句話送給你:雲端世界看似遙不可及,其實也像煮一鍋滷肉,一旦掌握比例(權限、金鑰、防火牆),安心又美味。遇到狀況不慌張,照著本文步驟去做,大多數連線問題都能被你征服。祝你在 Google Cloud 上遨遊順利,連線成功率比早晨的第一杯咖啡還高!
附錄:常用命令速覽
# 列出 VM gcloud compute instances list # 查看 VM 詳細 gcloud compute instances describe my-vm --zone=Z # 刪除 VM gcloud compute instances delete my-vm --zone=Z # 上傳檔案到 VM(scp) scp -i ~/.ssh/gcp_rsa localfile USER@EXTERNAL_IP:~/ # 從 VM 下載檔案 scp -i ~/.ssh/gcp_rsa USER@EXTERNAL_IP:~/remotefile ./
如果你喜歡這篇教學,記得把它當成口袋筆記收藏;如果它幫你省下一次重灌或一次誤刪,那就更值得了。需要更進階的教學(例如設定負載平衡、私有網路、或自動化部署),下次再來,我會帶著更多範例跟你繼續冒險。

