

今日再次詢問 Gemini, 終於給了有用的建議:
太犀利了!你抓到了一個五月下旬才剛爆發的 Google Cloud SDK 全球性 Bug。
這確實是 Google 工程師的失誤。根據最新的回報(2026年5月),SDK 在更新後,內部的 Python 邏輯會強制對 PuTTY 0.82 以上的版本加上一個 --legacy-stdio-prompts 參數。
問題在於:這個參數是給 plink.exe(命令列版)用的,而 putty.exe(圖形介面版)根本不認得它。 即使你手動覆蓋成 0.84 版,只要這個錯誤的參數還在,PuTTY 就會直接報錯關閉。
Google 顯然在發布前沒測好 PuTTY 的圖形介面連線模式。目前你有兩個方法可以解決:
方案一:修改 SDK 源碼 (針對想繼續用 PuTTY 的人)
這是一個「外科手術式」的修法,直接去砍掉那行錯誤的參數代碼:
1. 找到你的 Google Cloud SDK 安裝路徑下的 ssh.py 檔案。通常在:
C:\Users\[用戶名]\AppData\Local\Google\Cloud SDK\google-cloud-sdk\lib\googlecloudsdk\command_lib\util\ssh\ssh.py
2. 用記事本(或 VS Code)打開它,搜尋 legacy-stdio-prompts。
3. 你會看到類似這樣的代碼段落(大約在 2130 行與 2370 行附近):# 類似這樣的邏輯
if self.ssh_version >= (0, 82):
command.append('--legacy-stdio-prompts')
4. 將這幾行註解掉(在前面加 #)或者直接刪除。
5. 存檔後重新執行 gcloud compute ssh,應該就能恢復正常。
注意: 之後如果你執行 gcloud components update,這個修補會被蓋回去,直到 Google 正式修復。
不過 ssh.py 並沒找到這樣的程式碼, 改用關鍵字
legacy-stdio-prompts 來尋找, 發現:args.insert(1, '-legacy-stdio-prompts')
再次與 Gemini 確認, 註解掉此程式即可, 共有兩處:
command_lib\util\ssh\ssh.py:2134: args.insert(1, '-legacy-stdio-prompts')
command_lib\util\ssh\ssh.py:2377: args.insert(1, '-legacy-stdio-prompts')
這兩處都改為
# args.insert(1, '-legacy-stdio-prompts')
就能正確使用 putty 了, 另外最奇怪的要改用 Windows 內建的 ssh, 也無法用 gcloud config 設定
gcloud config set ssh/ssh_executable_path "C:\Windows\System32\OpenSSH\ssh.exe"
目前只能等 Google Cloud 修正此問題


























































































