本文說明如何設定 OS 登入。
OS 登入功能可讓您根據 IAM 權限,控管虛擬機器 (VM) 執行個體的存取權。如要進一步瞭解 OS 登入,請參閱「關於 OS 登入」。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 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
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
- Set a default region and zone.
Terraform
如要在本機開發環境中使用本頁的 Terraform 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
安裝 Google Cloud CLI。
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
詳情請參閱 Set up authentication for a local development environment。
限制
下列 VM 不支援 OS 登入:- Windows Server 和 SQL Server VM。
- Fedora CoreOS VM。如要管理使用這些映像檔建立的 VM 執行個體存取權,請使用 Fedora CoreOS 啟動系統。
- SLES-16 VM。如要管理使用這些映像檔建立的 VM 執行個體存取權,請使用以中繼資料為基礎的安全殼層。
如要確認特定 Linux 發行版本是否支援 OS Login,請參閱「作業系統詳細資料」。
指派 OS Login IAM 角色
將所有必要的 IAM 角色指派給連線至已啟用 OS 登入的 VM 的使用者。
角色 必要使用者 授予層級 roles/compute.osLogin或roles/compute.osAdminLogin所有使用者 如果使用者需要透過 Google Cloud 控制台或 Google Cloud CLI 進行 SSH 存取,您必須在專案層級授予這些角色,或在專案層級額外授予含有
compute.projects.get權限的角色。roles/iam.serviceAccountUser如果 VM 有服務帳戶,則為所有使用者 在「服務帳戶」頁面。 roles/compute.osLoginExternalUser使用者與所連線的 VM 屬於不同機構 這個角色必須由機構管理員授予。
啟用 OS 登入功能
如要為單一 VM 或專案中的所有 VM 啟用 OS 登入功能,請在專案或執行個體中繼資料中,將
enable-oslogin設為TRUE。設定 OS 登入中繼資料時,Compute Engine 會刪除 VM 的
authorized_keys檔案,且不再接受專案或執行個體中繼資料中儲存的 SSH 金鑰連線。為專案中的所有 VM 啟用 OS 登入功能
如要為專案中的所有 VM 啟用 OS 登入,請在專案中繼資料中設定下列值:
- 鍵:
enable-oslogin - 值:
TRUE
為單一 VM 啟用 OS 登入功能
如要為單一 VM 啟用 OS 登入,請在執行個體中繼資料中設定下列值:
- 鍵:
enable-oslogin - 值:
TRUE
在建立 VM 時啟用 OS 登入功能
使用 Google Cloud 控制台或 gcloud CLI 建立 VM 時,請啟用 OS 登入功能。
控制台
建立 VM,在啟動時啟用 OS 登入功能,方法是從公開映像檔建立 VM,並指定下列設定:
- 展開「Advanced options」(進階選項) 區段。
- 展開「安全性」部分。
- 展開「管理存取權」部分。
- 選取「透過 IAM 權限控管 VM 存取權」。
- 按一下「建立」即可建立並啟動 VM。
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
執行下列
gcloud compute instance create指令,建立在啟動時啟用 OS 登入的 VM:gcloud compute instances create VM_NAME \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --metadata enable-oslogin=TRUE
更改下列內容:
選項 1:在全專案範圍的中繼資料內設定
enable-oslogin,以將其套用至您專案中的所有 VM。使用
google_compute_project_metadataTerraform 資源,並設定中繼資料值,其中oslogin=TRUE:或者,您也可以將
enable-oslogin設為FALSE來停用 OS 登入。方法 2:在新 VM 或現有 VM 的中繼資料中設定
enable-oslogin。使用
google_compute_instanceTerraform 資源並設定oslogin=TRUE。將oslogin_instance_name替換為 VM 名稱。或者,您也可以將
enable-oslogin設為FALSE,藉此停用 VM 的 OS 登入。
Terraform
您可以採用下列其中一個選項,將中繼資料值套用至專案或 VM:
連線至已啟用 OS 登入功能的 VM
如要連線至已啟用 OS 登入功能的 VM,請使用「連線至 Linux VM」一文所述的方法。
連線至已啟用 OS 登入功能的 VM 時,Compute Engine 會使用貴機構管理員為您設定的使用者名稱。如果貴機構管理員尚未為您設定使用者名稱,Compute Engine 會產生
USERNAME_DOMAIN_SUFFIX格式的使用者名稱。如要進一步瞭解使用者名稱,請參閱「OS Login 的運作原理」。啟用 OS 登入功能並採用兩步驟驗證
如要提高安全性,您可以要求使用者連線至已啟用 OS 登入的 VM 時,必須使用雙重驗證 (2FA)。如果您打算使用 OS 登入的雙重驗證功能,使用者必須在帳戶中設定兩步驟驗證。如要瞭解支援的 2FA 方法,請參閱「關於 OS 登入」一文。
啟用兩步驟驗證前,請先啟用 OS 登入,如「啟用 OS 登入」一文所述。如要啟用 OS Login 雙重驗證,請在執行個體或專案中繼資料中設定下列中繼資料值:
- 鍵:
enable-oslogin-2fa - 值:
TRUE
如要強制執行 OS Login 2FA,OS Login (
enable-oslogin) 和 OS Login 2FA (enable-oslogin-2fa) 的中繼資料都必須設為TRUE。連線至已啟用 OS Login 2FA 的 VM 時,您也會看到系統根據所選兩步驟驗證方法或驗證類型發出的訊息。如果使用的方法是手機提示,請在手機或平板電腦上接受提示,才能繼續操作。如果是其他方法,請輸入您的安全碼或動態密碼。
排解 OS 登入問題
如要瞭解如何診斷及解決 OS 登入錯誤,請參閱「排解 OS 登入問題」。
後續步驟
- 瞭解如何使用 SSH 連線至 Compute Engine 的 Linux VM。
- 瞭解如何使用 SSH 憑證 (搶先版) 連線至 VM。
- 瞭解如何使用安全金鑰搭配 SSH (預先發布版) 進一步限制 VM 存取權。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2026-03-12 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2026-03-12 (世界標準時間)。"],[],[]] -