GCP帳號註冊 谷歌雲開戶SSH密鑰配置
前言:SSH密鑰是什麼?為什麼你一定會需要它
很多人第一次開 Google Cloud(谷歌雲)的時候,心裡會想:「不就是租個虛擬機嗎?登入進去玩一下程式就好啦!」然後下一步就會看到 SSH、金鑰、上傳、授權……整個界面像在考你密碼學。
先把話說人話:SSH密鑰配置的目的,是讓你的電腦用安全且可控的方式登入你的雲端主機。比起密碼登入,密鑰更不容易被猜、也更不容易被暴力破解。更重要的是,這在雲端是標準做法——你用密碼硬登,系統可能還不讓你登,或你之後要補各種安全設定,會很煩。
本篇文章主題就是:谷歌雲開戶SSH密鑰配置。我們會從開通與準備開始,一路做到「你能連上、你能登入、你知道萬一失敗該查哪裡」。
準備工作:你需要哪些東西
1. Google Cloud 帳號與專案(Project)
你需要先有 Google Cloud 帳號,並建立或選擇一個專案。專案就像你的「雲端容器」:虛擬機、網路、防火牆規則都會掛在裡面。
如果你還沒建立專案,照著 Google Cloud Console 走就好。介面可能會改版,但大概會是「選專案 → 建立或選擇專案」。
2. 一台可以產生 SSH 金鑰的電腦
你可以用 Windows、macOS、Linux 來產生金鑰。只要能跑指令、能拿到私鑰(private key)就行。
提醒:私鑰一定要留在你自己的電腦。私鑰外洩=你的帳號可能被別人冒用。所以私鑰不要上傳到不該去的地方,也不要貼在任何論壇或群組裡。
3. 你要登入的執行個體(VM)
SSH 連線是針對某台 VM(Compute Engine)。你要先有一台 VM,或至少在建立 VM 的時候能指定金鑰。
步驟一:在本機生成 SSH 密鑰(推薦 Ed25519)
Google Cloud 支援多種金鑰格式。現在較推薦使用 Ed25519,速度快、金鑰短、好管理。下面以生成一對金鑰為例。
macOS / Linux
打開終端機,執行:
1)先確認 SSH 工具存在:
```bash ssh -V ```
2)生成金鑰(把檔名換成你喜歡的):
```bash ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/google_compute_ed25519 ```
3)它會問你是否要設置 passphrase。如果你不設 passphrase,登入會更順,但私鑰若被偷就更危險;如果你設 passphrase,安全性更高但每次可能要輸入密語。建議新手可先不設,熟悉後再考慮加上。
完成後,你會得到兩個檔案:
私鑰:~/.ssh/google_compute_ed25519(不要外傳)
公鑰:~/.ssh/google_compute_ed25519.pub(要貼給 Google Cloud)
Windows(PowerShell)
如果你的 Windows 有內建 OpenSSH,可以直接用 PowerShell:
1)生成金鑰:
```powershell ssh-keygen -t ed25519 -C "[email protected]" -f $env:USERPROFILE\.ssh\google_compute_ed25519 ```
2)同樣會產生:
私鑰:%USERPROFILE%\.ssh\google_compute_ed25519
公鑰:%USERPROFILE%\.ssh\google_compute_ed25519.pub
找不到 SSH 工具的話,通常要先在 Windows 功能或設定裡啟用「OpenSSH Client」。
步驟二:把公鑰上傳到 Google Cloud
GCP帳號註冊 Google Cloud 對 SSH 的管理方式有兩種常見流程:
- 在建立 VM 時直接填入公鑰(快速)
- 先建立「SSH 金鑰」並綁到 VM 或使用者(比較系統化)
新手最常用第一種。因為你現在只想登入嘛,不想先研究整套架構。
方案A:建立 VM 時直接指定 SSH 金鑰
進到 Google Cloud Console:
- Compute Engine → VM instances(虛擬機)
- 點「Create instance」(建立執行個體)
在建立頁面裡,找「Security」或「SSH」相關欄位,通常會有:
- 選擇用哪個帳號登入(例如
test-user或預設的使用者) - 輸入或上傳 SSH 公鑰
你需要做的是:
- 打開你的公鑰檔(
.pub)內容 - 把整段以
ssh-ed25519開頭的內容貼進去
macOS/Linux 查內容:
```bash cat ~/.ssh/google_compute_ed25519.pub ```
GCP帳號註冊 Windows PowerShell 查內容:
```powershell Get-Content $env:USERPROFILE\.ssh\google_compute_ed25519.pub ```
貼上時注意:不要只貼一小段,也不要把多餘的換行搞得像斷句詩歌。一般直接複製整段就好。
方案B:先把 SSH 公鑰註冊到 Google Cloud(更乾淨)
有些人習慣先建立金鑰,之後每台 VM 都引用。做法大同小異,但位置可能在:
- Compute Engine → Metadata(中繼資料)→ SSH keys
- 或 Identity & Access/安全相關頁面(介面略有差異)
核心概念相同:你會把「使用者 + 公鑰」這種格式貼進去。
常見格式像:
your-username:ssh-ed25519 AAAA...your_key...
其中 your-username 要符合 VM 裡的登入使用者(或你在建立 VM 時設定的使用者)。
步驟三:確認 VM 端點與網路設定(防火牆別跟你過不去)
SSH 不是只有金鑰就能成功,它還要通過網路。很多人以為「金鑰對了就一定能連」,結果卡在連線逾時。通常不是你手滑,而是防火牆或網路路由在擋。
GCP帳號註冊 1. 看 VM 是否有外網 IP(External IP)
GCP帳號註冊 如果你要從你家電腦連到雲端 VM,通常需要 VM 有外網 IP。
在 VM 的詳細資訊頁會看到:
- External IP(外網 IP)
- Internal IP(內網 IP)
一般外網連線用 External IP。
2. 防火牆開放 TCP 22
SSH 預設埠是 22。你需要在 Google Cloud 的防火牆規則中允許連入。
常見情境:
- 你用「預設」或「允許 SSH」模板建立 VM:可能已自動開放
- 你手動建立網路/防火牆:可能忘了開 22
建議你確認防火牆規則裡是否有一條:
- 方向:Ingress(入站)
- 協定/埠:TCP 22
- 來源:通常是你的 IP / 或 0.0.0.0/0(不建議太寬)
不建議把來源開到全世界。新手先連得上就好,但你最好改成限制你自己的 IP。
步驟四:用 SSH 連線並測試(終於要帥起來了)
當你有:
- VM 外網 IP
- VM 建立時的登入使用者
- 你的私鑰(private key)
- 防火牆允許 TCP 22
就可以開始連線。
基本指令
以你生成的私鑰為例:
```bash ssh -i ~/.ssh/google_compute_ed25519 your-username@YOUR_VM_EXTERNAL_IP ```
Windows 用 OpenSSH(PowerShell / Windows Terminal)也類似:
```powershell ssh -i $env:USERPROFILE\.ssh\google_compute_ed25519 your-username@YOUR_VM_EXTERNAL_IP ```
第一次連線可能會問信任主機
你可能看到類似:
Are you sure you want to continue connecting (yes/no/[fingerprint])?
這是正常的。你可以輸入 yes。SSH 會把主機指紋記到 ~/.ssh/known_hosts。
如果你的 VM 開了不同使用者
你在建立 VM 或上傳公鑰時指定的使用者,必須跟你登入指令的 your-username一致。否則你就會遇到「Permission denied(權限不足)」。
常見錯誤與排錯清單(避免你一直以為是金鑰壞了)
下面這段是我把「看過太多人卡住的瞬間」總結成的排錯清單。你可以照順序檢查,通常很快就能定位。
錯誤1:Permission denied (publickey)
最常見原因:
- 你貼到 Google Cloud 的不是正確公鑰(貼錯檔案或生成過多把金鑰)
- 你用的私鑰不是對應那把公鑰
- VM 設定的登入使用者和你指令的使用者不一致
- 私鑰檔權限不正確(macOS/Linux 特別常見)
檢查金鑰對不對:把本機公鑰內容跟你貼到 Cloud 的內容對照。你也可以重新上傳一次公鑰,確保一致。
檢查權限(macOS/Linux):
```bash chmod 600 ~/.ssh/google_compute_ed25519 ```
權限不對時,SSH 客戶端可能拒絕使用私鑰,進而導致 Permission denied。
錯誤2:Connection timed out 或 No route to host
這通常跟「網路連不進去」有關,不是金鑰錯。
- VM 沒有外網 IP
- 防火牆沒有放行 TCP 22
- 你連錯 IP(例如連到內網 IP)
你可以先 ping 外網 IP(不一定每個環境允許 ping,但至少能判斷網路層狀況)。更實用的是檢查防火牆規則。
錯誤3:Host key verification failed
通常是主機指紋變了。情況例如:你刪了 VM 重建,或 VM 的 SSH host key 重新生成。
處理方式:你可以在本機刪除該主機對應的 known_hosts 內容,再重新連線。
例如:
```bash ssh-keygen -R YOUR_VM_EXTERNAL_IP ```
然後再 ssh 一次。
錯誤4:你把私鑰上傳到雲端(千萬別)
這種錯誤雖然少,但真的有人做。Google Cloud 需要的是 公鑰,不是私鑰。
如果你懷疑私鑰已經外洩,建議你:
- 立刻停止使用那把私鑰
- 生成新金鑰
- 更新 Google Cloud 端的公鑰
資安不是用來自責的,是用來快速止血的。
進階建議:讓你的SSH更穩、更安全
當你已經能連上了,恭喜!但我們可以把體驗再提升一下。畢竟你不是只想「能登入」,你是想「用得舒服」以及「不想半夜被打臉」。
1. 使用 SSH config 簡化指令
你可以在本機的 ~/.ssh/config 設定別名:
```text Host my-gcp-vm HostName YOUR_VM_EXTERNAL_IP User your-username IdentityFile ~/.ssh/google_compute_ed25519 ```
之後就可以:
```bash ssh my-gcp-vm ```
指令更短,少打錯,也比較不會把自己綁進「長命指令地獄」。
GCP帳號註冊 2. 建議限制來源 IP(不是開到全世界)
防火牆把來源限制成你的固定 IP 或常用區段,會安全很多。雖然新手先開放 0.0.0.0/0 可能更快驗證,但長期不建議。
3. 考慮加入 OS Login(如果你使用的是 Google 原生機制)
Google Cloud 有些功能會讓你用更統一的帳號管理方式來做登入。若你後續要管理很多 VM 或多個人協作,OS Login 會更符合維運邏輯。不過本文先以最直接的 SSH 公鑰流程為主。
快速範本:從零到能連上(你可以照抄流程)
你可以把下面當成清單,一步一步勾掉。
- 建立 Google Cloud 專案
- Compute Engine 建立 VM
- 生成 SSH 金鑰(在本機):
ssh-keygen -t ed25519 ... - 讀取公鑰內容(
.pub)並貼到 VM 的 SSH keys - 設定 VM 登入使用者(保持你之後登入指令一致)
- 確認 VM 有 External IP
- 確認防火牆開放 TCP 22
- 本機執行:
ssh -i 私鑰 your-username@外網IP - 登入成功後,再檢查你是否能正常操作(例如更新套件、上傳檔案)
結語:你現在不是「開戶」,你是「開啟自己的雲端主機生活」
「谷歌雲開戶SSH密鑰配置」聽起來像一個很正經的名詞,但其實你真正要做的是:讓你的電腦用安全方式登入雲端,並且把常見坑踩少一點。
如果你照著本文走,通常可以在幾十分鐘內搞定(前提是網路、防火牆不要跟你作對)。遇到問題也別急著懷疑自己——大多數情況都可以用上面的排錯清單快速定位:是金鑰不對?是使用者不對?還是網路根本沒放行?
最後送你一句話:SSH密鑰的世界,公鑰可以到處走,私鑰只該留在你身邊。 祝你連線順利、部署順心,也祝你的 VM 不會突然消失得像夢一樣。

