支援 OS 登入憑證的 VM 支援透過安全殼層金鑰和安全殼層憑證連線。安全殼層 (SSH) 憑證是由另一個受信任的金鑰簽署的安全殼層金鑰,在本例中,該金鑰是由 OS 登入管理的憑證授權單位。本文說明如何設定 OS 登入 VM,要求透過 SSH 連線時必須使用 SSH 憑證,並封鎖來自未簽署 SSH 金鑰的連線。
設定 OS 登入功能時,如果要求透過 SSH 憑證連線至 VM,只有憑證授權單位簽署的 SSH 憑證才能連線至 VM,未簽署的 SSH 金鑰連線會遭到拒絕。SSH 憑證的效期為五分鐘,過期後就無法再用來連線至 VM,必須產生新的憑證。
建議您設定 OS 登入,要求 SSH 連線使用 SSH 憑證,進一步防範惡意使用者。安全殼層憑證的效期很短,而且只適用於特定 VM,因此即使遭駭,攻擊面也會小得多,攻擊時間也比長期有效的安全殼層金鑰短得多。
如果貴機構使用員工身分聯盟,請參閱「搭配 OS 登入使用員工身分聯盟」,瞭解如何為貴機構啟用 SSH 憑證。
事前準備
- 設定 OS 登入並指派 OS 登入 IAM 角色。
-
如果尚未設定驗證,請先完成設定。
「驗證」是指驗證身分的程序,確認您有權存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- 如要使用 SSH 憑證,連線的 VM 必須安裝 OpenSSH 7.4 以上版本。
前往「中繼資料」頁面。
按一下 [編輯]。
按一下 [新增項目]。
- 在「Key」(金鑰) 欄位中輸入
enable-oslogin
。 - 在「Value」(值) 欄位中,輸入
TRUE
。
- 在「Key」(金鑰) 欄位中輸入
按一下 [新增項目]。
- 在「Key」(金鑰) 欄位中輸入
enable-oslogin-certificates
。 - 在「Value」(值) 欄位中,輸入
TRUE
。
- 在「Key」(金鑰) 欄位中輸入
按一下 [儲存]。
前往「VM instances」(VM 執行個體) 頁面。
按一下要使用 SSH 憑證的 VM 名稱。
按一下 [編輯]。
在「Metadata」(中繼資料) 區段中,按一下「Add item」(新增項目)。
- 在「Key」(金鑰) 欄位中輸入
enable-oslogin
。 - 在「Value」(值) 欄位中,輸入
TRUE
。
- 在「Key」(金鑰) 欄位中輸入
按一下 [新增項目]。
- 在「Key」(金鑰) 欄位中輸入
enable-oslogin-certificates
。 - 在「Value」(值) 欄位中,輸入
TRUE
。
- 在「Key」(金鑰) 欄位中輸入
按一下 [儲存]。
- In the Google Cloud console, go to the VM instances page.
-
In the list of virtual machine instances, click SSH in the row of
the instance that you want to connect to.
如果還沒有 SSH 金鑰,請建立一個。
使用
projects.locations.signSshPublicKey
方法簽署公開安全殼層金鑰:POST https://oslogin.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION:signSshPublicKey { "ssh_public_key": "PUBLIC_KEY" "compute_instance": "COMPUTE_INSTANCE", "service_account": "SERVICE_ACCOUNT" }
更改下列內容:
PROJECT_ID
:含有要連線 VM 的專案 IDLOCATION
:要連線的 VM 所在區域PUBLIC_KEY
:安全殼層公開金鑰檔案的內容COMPUTE_INSTANCE
:要連線的 Compute Engine 執行個體,格式為projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_ID
。SERVICE_ACCOUNT
:附加至執行個體的服務帳戶。如果執行個體未附加服務帳戶,請刪除這個欄位。
從
projects.locations.signSshPublicKey
方法的輸出內容複製 SSH 憑證,並將內容儲存在新檔案中。執行下列指令,設定 SSH 憑證檔案的權限:
sudo chmod 600 FILE_NAME
將
FILE_NAME
換成檔案名稱。使用下列指令連線至 VM:
ssh -i PATH_TO_PRIVATE_KEY -o CertificateFile=PATH_TO_SSH_CERTIFICATE USERNAME@EXTERNAL_IP
更改下列內容:
PATH_TO_PRIVATE_KEY
:私密安全殼層金鑰檔案的路徑。PATH_TO_SSH_CERTIFICATE
:SSH 憑證檔案的路徑。USERNAME
:您的 OS 登入使用者名稱EXTERNAL_IP
:VM 的外部 IP 位址。
- 您的 VM 使用不支援的 OpenSSH 版本。如要解決這個問題,請在執行個體中繼資料中將
enable-oslogin-certificates
設為FALSE
,藉此停用 VM 中繼資料中的憑證。 - 進一步瞭解 OS Login。
- 瞭解如何設定採用兩步驟驗證機制的 OS 登入。
- 瞭解如何管理機構中的 OS 登入。
限制
需要 SSH 憑證
您可以設定 OS 登入功能,要求所有連線至專案中 OS 登入 VM 或單一 VM 的 SSH 連線,都必須使用 SSH 憑證。設定 OS 登入功能,要求使用 SSH 憑證後,從 Google Cloud 控制台和 gcloud CLI 建立的 SSH 連線,預設會使用 SSH 憑證。如果您不想設定 OS 登入功能來要求憑證,但想使用憑證連線至 VM,就必須使用第三方工具連線,如「使用 SSH 憑證連線至 VM」一節所述。
要求專案中所有啟用 OS 登入的 VM 都必須使用 SSH 憑證
如要為專案中所有使用 OS 登入的 VM,要求所有連線都必須使用 SSH 憑證,請使用 Google Cloud 控制台或 gcloud CLI。
主控台
如要規定所有連線都必須使用 SSH 憑證連線至已啟用 OS 登入功能的 VM,請使用 Google Cloud 主控台,將專案中繼資料中的
enable-oslogin
和enable-oslogin-certificates
設為TRUE
:gcloud
如要規定所有連線都必須使用 SSH 憑證,才能連線至已啟用 OS 登入功能的 VM,請使用
gcloud compute project-info add-metadata
指令在專案中繼資料中設定enable-oslogin=TRUE
和enable-oslogin-certificates=TRUE
:gcloud compute project-info add-metadata \ --metadata enable-oslogin=TRUE,enable-oslogin-certificates=TRUE
在啟用 OS 登入的單一 VM 上要求 SSH 憑證
如要對使用 OS Login 的單一 VM 的所有 SSH 連線要求憑證,請使用 Google Cloud 控制台或 gcloud CLI。
主控台
如要對單一 VM 的所有連線強制使用 SSH 憑證,請使用Google Cloud 控制台將執行個體中繼資料的
enable-oslogin
和enable-oslogin-certificates
設為TRUE
:gcloud
如要對單一 VM 的所有連線要求使用 SSH 憑證,請使用
gcloud compute instances add-metadata
指令,在執行個體中繼資料中設定enable-oslogin=TRUE
和enable-oslogin-certificates=TRUE
:gcloud compute instances add-metadata VM_NAME \ --metadata enable-oslogin=TRUE,enable-oslogin-certificates=TRUE
將您的 VM 名稱替換為
VM_NAME
。使用 SSH 憑證連線至 VM
設定 OS 登入功能,要求使用 SSH 憑證後,從 Google Cloud 控制台和 gcloud CLI 建立的 SSH 連線,預設會使用 SSH 憑證。如果不想設定 OS Login 必須使用憑證,但想使用憑證連線至 VM,則必須使用第三方工具連線。
主控台
從Google Cloud 控制台使用 瀏覽器中的 SSH 連線至 VM,方法如下:
gcloud
使用
gcloud beta compute ssh
指令透過憑證連線至 VM:gcloud beta compute ssh VM_NAME
將
VM_NAME
替換為要連線的 VM 名稱。第三方工具
如要搭配第三方 SSH 用戶端使用 SSH 憑證,請按照下列步驟操作:
疑難排解
如果您無法連線至已設定為需要 SSH 憑證的 VM,可能的原因如下:
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-11 (世界標準時間)。
-