觀點 · 資訊分享
Google Cloud Run 可以直接 SSH 進容器了:除錯不用再猜,憑證 5 分鐘就失效
Google Cloud Run 推出 SSH 預覽功能,開發者可以用 gcloud 指令連進正在執行的容器裡查檔案、看設定、排除問題。連線經過 IAP 驗證、用 5 分鐘效期的 SSH 憑證,單次最長 24 小時。
- 發布
- 2026-10-07
- 篇幅
- 約 3 分鐘 · 1,553 字
- 結構
- 7 節 + 3 題常見問題
- 標籤

一句話看懂:Google Cloud Run 推出 SSH 預覽功能,開發者可以直接連進正在執行的容器裡查問題,連線要經過 IAP 與 IAM 驗證,憑證 5 分鐘就失效。

先用白話講:為什麼「能 SSH 進容器」很重要?
想像你租了一台會自己開的無人車(Cloud Run),平常你只要說目的地,它就幫你開到,不用管引擎、輪胎。但有一天車子在路上怪怪的,你只能看行車紀錄(日誌)猜原因,沒辦法打開引擎蓋檢查。
SSH 就像是一把能打開引擎蓋的鑰匙,讓你連進正在執行的電腦或容器,直接輸入指令、看檔案、查設定。Cloud Run 這次終於提供了官方的鑰匙,而且這把鑰匙每 5 分鐘就會換一次。
發生什麼事
Google Cloud 在 10 月 7 日的版本說明公布:Cloud Run 服務與執行個體的 SSH 功能進入預覽,可以建立安全的互動式殼層連線,進到正在執行的執行個體裡。
依官方文件,它的安全設計是這樣:
- IAP 把關:連線先經過 Identity-Aware Proxy 的驗證與授權,還能依 IP 或裝置條件限制
- 短效憑證:OS Login 用 SSH 憑證驗證使用者,gcloud 發出的憑證 5 分鐘就過期,每次登入都重新檢查 IAM 權限
- 用完就收:Cloud Run 只在連線期間把 Google 管理的
sshd等程式放進容器,結束後移除;容器裡原本的 SSH 設定會被忽略
使用限制
| 限制 | 內容 |
|---|---|
| 單次連線 | 最長 24 小時,時間到要重連 |
| 閒置 | 1 小時沒動作,IAP 會斷線 |
| 支援範圍 | 第二代執行環境的服務與 Cloud Run 執行個體 |
| Windows | 要用 OpenSSH,不支援 PuTTY |
| 費用 | 計算網路傳出流量;沒有執行中的執行個體時會啟動一個並照常計費 |
給開發者的技術細節
gcloud services enable run.googleapis.com cloudresourcemanager.googleapis.com iap.googleapis.com oslogin.googleapis.com
gcloud beta run services update SERVICE --ssh
gcloud beta run services ssh SERVICE --region=REGION --project=PROJECT_ID
- 服務要手動開啟 SSH;Cloud Run 執行個體則預設開啟
- 可以加
--revision、--instance指定要連的版本或執行個體,執行個體 ID 可以在日誌的 labels 欄位找到 - 需要的 IAM 角色包括
roles/run.sshRoot、roles/iap.tunnelResourceAccessor等 - 組織可以用自訂限制條件的組織政策,全面停用 Cloud Run 的 SSH 除錯
- 多容器服務若設定了啟動順序,SSH 冷啟動時可能回 HTTP 500,官方建議先送一個請求讓執行個體醒著,或設定最少執行個體數
我的看法
用 Cloud Run 部署的專案,最痛的就是「本機正常、上線出錯」,只能一直加日誌、重新部署、再看日誌。能直接進容器看環境變數有沒有吃到、檔案有沒有在、套件版本對不對,除錯時間可以省很多。
但我會把它當成「急診工具」,不是日常操作。三個習慣建議養成:用完就用 --no-ssh 關掉、run.sshRoot 權限只給真的需要的人、在容器裡手動修好的東西一定要回頭改進映像檔,因為執行個體一重啟就全部消失。
名詞小辭典
- SSH:一種加密的遠端連線方式,讓你在自己的電腦上操作遠端機器的指令列。
- Cloud Run:Google 的無伺服器容器服務,交出容器映像檔就能執行,不用管主機。
- IAP(Identity-Aware Proxy):Google 的身分驗證代理,確認你是誰、有沒有權限後才放行連線。
- IAM:雲端的權限管理系統,決定誰能對哪些資源做什麼事。
資料來源
常見問題
Cloud Run 是什麼?以前為什麼不能 SSH?
Cloud Run 是 Google 的無伺服器容器服務,你只要給它容器映像檔,它負責執行與擴展。因為不需要管主機,以前也沒有官方的方式能直接連進正在執行的容器,除錯大多只能看日誌。
要怎麼連進去?
先啟用 Cloud Run Admin、Cloud Resource Manager、IAP、OS Login 四個 API 並更新 gcloud,再對服務開啟 SSH(gcloud beta run services update 服務名稱 --ssh),然後用 gcloud beta run services ssh 服務名稱 連線。
在容器裡改的設定會保留嗎?
只要容器還活著就會保留,用 exit 離開也不會重啟容器;但執行個體一重啟,改動就不見了。官方也提醒 SSH 期間會覆寫映像檔裡的主機金鑰,直到執行個體重啟。
接著讀
全部觀點 →Google Cloud 預算終於能「踩煞車」:Gemini API、Cloud Run 花超過上限就自動暫停Google Cloud 的支出上限預算正式上線:替 Gemini API、Cloud Run 等服務設一個月預算,估計花費超過就自動暫停新請求,下個月一號自動恢復。以前的預算只會寄信提醒,帳單爆掉也擋不住。閱讀 →Firestore 內建全文搜尋與地理搜尋正式上線:找關鍵字、找附近店家,不用另外架搜尋服務Google Cloud 的 Firestore 全文搜尋與地理搜尋在 10 月 19 日轉為正式版。在 Enterprise 版資料庫建好索引後,就能直接查關鍵字、排除字詞,或找出某個座標方圓幾公尺內的資料。閱讀 →BigQuery 的 AI 函式可以設每日 token 上限了:一行 SQL 燒掉整月預算的風險變小Google 宣布 BigQuery 生成式 AI 函式的 token 配額正式上線,可以替整個專案或每位使用者設每日的輸入、輸出 token 上限,調低立即生效,避免一次查詢就把預算燒光。閱讀 →