Compute Engine 會使用金鑰型 SSH 驗證機制,建立與 Linux 虛擬機器 (VM) 執行個體的連線,並額外支援OS 登入 VM 的憑證式驗證。您可以選擇為 Windows VM 啟用 SSH。根據預設,系統不會為 Linux VM 上的本機使用者設定密碼。
您必須先完成幾項設定,才能連線至 VM。如果您使用 Google Cloud 控制台或 Google Cloud CLI 連線至 VM,Compute Engine 會代您執行這些設定。 Compute Engine 會根據您使用的連線工具,以及是否透過中繼資料或 OS 登入管理 VM 存取權,執行不同的設定。OS 登入僅適用於 Linux VM。
中繼資料管理的 SSH 連線
根據預設,Compute Engine 會使用自訂專案和/或執行個體中繼資料,設定安全殼層金鑰及管理 SSH 存取權。所有 Windows VM 都會使用中繼資料管理安全殼層金鑰,而 Linux VM 則可使用中繼資料金鑰或 OS 登入功能。如果您使用 OS 登入,系統會停用中繼資料安全殼層金鑰。當您使用 Google Cloud 控制台、gcloud CLI 或第三方工具連線至 VM 時,Compute Engine 會先執行設定,再授予 SSH 連線。點選各分頁標籤,即可進一步瞭解這些設定。如果不使用 Google Cloud 控制台或 gcloud CLI 連線至 VM,則必須自行執行部分設定。
控制台
- 您可以使用 Google Cloud 控制台中的「SSH」按鈕連線至 VM。
- Compute Engine 會設定使用者名稱,並使用下列設定建立暫時性安全殼層金鑰組:
- 系統會將你的使用者名稱設為 Google 帳戶的使用者名稱。舉例來說,如果與 Google 帳戶相關聯的電子郵件地址是
cloudysanfrancisco@gmail.com,則使用者名稱就是cloudysanfrancisco。 - 公開和私密安全殼層金鑰會儲存在瀏覽器工作階段中。
- 您的安全殼層金鑰會在三分鐘後失效。Compute Engine 建立金鑰後,您就無法再使用安全殼層金鑰連線至 VM。
- 系統會將你的使用者名稱設為 Google 帳戶的使用者名稱。舉例來說,如果與 Google 帳戶相關聯的電子郵件地址是
- Compute Engine 會驗證安全殼層金鑰,並授予連線權限。
- Compute Engine 會將公開安全殼層金鑰和使用者名稱上傳至中繼資料。
- Compute Engine 會從中繼資料擷取安全殼層金鑰和使用者名稱,並使用該使用者名稱建立使用者帳戶。在 Linux VM 上,Compute Engine 會將公開金鑰儲存在 VM 上的使用者
~/.ssh/authorized_keys檔案中。在 Windows VM 上,Compute Engine 不會將公開金鑰儲存在 VM 上。 - Compute Engine 授予連線。
gcloud
- 您可以使用
gcloud compute ssh指令連線至 VM。 - Compute Engine 會設定使用者名稱,並使用下列設定建立永久安全殼層金鑰組:
- 系統會將本機電腦中的使用者名稱設為使用者名稱。
- 您的公開安全殼層金鑰會儲存在專案中繼資料中。如果 Compute Engine 無法將安全殼層金鑰儲存在專案中繼資料中 (例如因為
block-project-ssh-keys設為TRUE),Compute Engine 會將安全殼層金鑰儲存在執行個體中繼資料中。 - 私人安全殼層金鑰會儲存在本機電腦。
- 您的安全殼層金鑰沒有到期日。除非您設定新的金鑰,否則日後所有 SSH 連線都會使用這個金鑰。
- 系統會將本機電腦中的使用者名稱設為使用者名稱。
- Compute Engine 會驗證安全殼層金鑰,並授予連線權。
- Compute Engine 會將公開安全殼層金鑰和使用者名稱上傳至中繼資料。
- Compute Engine 會從中繼資料擷取安全殼層金鑰和使用者名稱,並使用該使用者名稱建立使用者帳戶。在 Linux VM 上,Compute Engine 會將公開金鑰儲存在 VM 上的使用者
~/.ssh/authorized_keys檔案中。在 Windows VM 上,Compute Engine 不會將公開金鑰儲存在 VM 上。 - Compute Engine 授予連線。
第三方工具
- 您會建立安全殼層金鑰組和使用者名稱。詳情請參閱「 建立 SSH 金鑰」。
- 將公開金鑰和使用者名稱上傳至中繼資料。詳情請參閱「 將安全殼層金鑰新增至使用中繼資料安全殼層金鑰的 VM」。
- 連線至 VM。
- Compute Engine 會從中繼資料擷取安全殼層金鑰和使用者名稱,並建立具有該使用者名稱的使用者帳戶。在 Linux VM 上,系統會將公開金鑰儲存在 VM 使用者的
~/.ssh/authorized_keys檔案中。在 Windows VM 上,Compute Engine 不會將公開金鑰儲存在 VM 上。 - Compute Engine 會授予連線權。
OS 登入功能管理的 SSH 連線
設定 OS 登入中繼資料後,Compute Engine 會刪除 VM 的 authorized_keys 檔案,且不再接受專案或執行個體中繼資料中儲存的安全殼層金鑰連線。OS 登入支援來自與 Google 帳戶相關聯的 SSH 金鑰,以及由 OS 登入憑證授權單位簽署的 SSH 憑證的連線。您可以選擇要求 OS 登入僅允許使用 SSH 憑證的連線,詳情請參閱「要求使用 OS 登入的 SSH 憑證」。
安全殼層金鑰連線
點選各分頁標籤,進一步瞭解當您使用安全殼層金鑰連線至 VM 時,Compute Engine 在授予 SSH 連線前會執行的設定。根據您是使用 Google Cloud 控制台、gcloud CLI 還是第三方工具連線至 VM,Compute Engine 會執行不同的設定。如果使用第三方工具連線,您必須自行進行部分設定。
控制台
- 您可以使用 Google Cloud 控制台中的「SSH」按鈕連線至 VM。
- Compute Engine 會設定使用者名稱,並使用下列設定建立臨時安全殼層金鑰組:
- 使用者名稱是由貴機構的 Cloud Identity 或 Google Workspace 管理員設定。如果貴機構尚未為您設定使用者名稱,或您的專案不屬於任何機構,Compute Engine 會使用您的 Google 帳戶電子郵件地址,格式如下:
舉例來說,如果與 Google 帳戶相關聯的電子郵件地址是USERNAME_DOMAIN_SUFFIX
cloudysanfrancisco@gmail.com,系統產生的使用者名稱就是cloudysanfrancisco_gmail_com。 - 公開安全殼層金鑰會儲存在瀏覽器工作階段和 Google 帳戶中。
- 您的私人安全殼層金鑰會儲存在瀏覽器工作階段中。
- 安全殼層金鑰的有效期限為三分鐘。Compute Engine 建立金鑰後,您就無法再使用安全殼層金鑰連線至 VM。
- 使用者名稱是由貴機構的 Cloud Identity 或 Google Workspace 管理員設定。如果貴機構尚未為您設定使用者名稱,或您的專案不屬於任何機構,Compute Engine 會使用您的 Google 帳戶電子郵件地址,格式如下:
- Compute Engine 會驗證您的安全殼層金鑰,並授予連線權限。
gcloud
- 您可以使用
gcloud compute ssh指令連線至 VM。 - Compute Engine 會設定使用者名稱,並使用下列設定建立永久安全殼層金鑰組:
- 使用者名稱是由貴組織的 Cloud Identity 或 Google Workspace 管理員設定。如果貴機構未設定使用者名稱,Compute Engine 會使用您的 Google 帳戶電子郵件,格式如下:
舉例來說,如果與 Google 帳戶相關聯的電子郵件地址是USERNAME_DOMAIN_SUFFIX
cloudysanfrancisco@gmail.com,則產生的使用者名稱為cloudysanfrancisco_gmail_com。 - 公開安全殼層金鑰會儲存在 Google 帳戶中。
- 您的私密安全殼層金鑰會儲存在本機電腦的
google_compute_engine檔案中。 - 您的安全殼層金鑰沒有到期日。除非您設定新的金鑰,否則日後所有 SSH 連線都會使用這個金鑰。
- 使用者名稱是由貴組織的 Cloud Identity 或 Google Workspace 管理員設定。如果貴機構未設定使用者名稱,Compute Engine 會使用您的 Google 帳戶電子郵件,格式如下:
- Compute Engine 會驗證安全殼層金鑰,並授予連線權。
第三方工具
- 建立安全殼層金鑰組。詳情請參閱「 建立 SSH 金鑰」。
- 將公開安全殼層金鑰上傳至 OS 登入設定檔。詳情請參閱「
將金鑰新增至使用 OS 登入功能的 VM」。
- Compute Engine 會將金鑰儲存在您的 Google 帳戶中。
- Compute Engine 會以預設格式設定使用者名稱:
舉例來說,如果與 Google 帳戶相關聯的電子郵件地址是USERNAME_DOMAIN_SUFFIXcloudysanfrancisco@gmail.com,產生的使用者名稱就是cloudysanfrancisco_gmail_com。
- 您也可以使用 Google Workspace Admin SDK Directory API 設定使用者名稱。
- 連線至 VM。
- Compute Engine 會驗證您的安全殼層金鑰,並授予連線權限。
SSH 憑證連線
點選各分頁標籤,即可進一步瞭解 Compute Engine 在您使用 SSH 憑證連線至 VM 時,授予 SSH 連線前執行的設定。Compute Engine 會根據您使用 Google Cloud 控制台、gcloud CLI 或第三方工具連線至 VM,執行不同的設定。如果使用第三方工具連線,您必須自行進行部分設定。
控制台
- 您可以使用Google Cloud 控制台中的「SSH」按鈕連線至 VM。
- Compute Engine 會設定使用者名稱,並建立臨時安全殼層金鑰組。使用者名稱是由貴機構的 Cloud Identity 或 Google Workspace 管理員設定。如果貴組織未設定使用者名稱,或專案不屬於任何組織,Compute Engine 會使用您的 Google 帳戶電子郵件,格式如下:
舉例來說,如果與 Google 帳戶相關聯的電子郵件地址是USERNAME_DOMAIN_SUFFIX
cloudysanfrancisco@gmail.com,則系統產生的使用者名稱為cloudysanfrancisco_gmail_com。 - Compute Engine 會將公開金鑰傳送至 OS 登入憑證授權單位,並執行 IAM 授權,確保您有權連線至 VM。
- OS 登入憑證授權單位會提供效期短暫的已簽署 SSH 憑證。
- Compute Engine 會驗證短期憑證,並授予連線。
gcloud
- 您可以使用
gcloud beta compute ssh指令連線至 VM。 - Compute Engine 會設定使用者名稱,並建立臨時安全殼層金鑰組。使用者名稱是由貴機構的 Cloud Identity 或 Google Workspace 管理員設定。如果貴組織未設定使用者名稱,或專案不屬於任何組織,Compute Engine 會使用您的 Google 帳戶電子郵件,格式如下:
舉例來說,如果與 Google 帳戶相關聯的電子郵件地址是USERNAME_DOMAIN_SUFFIX
cloudysanfrancisco@gmail.com,則系統產生的使用者名稱為cloudysanfrancisco_gmail_com。 - Compute Engine 會將公開金鑰傳送至 OS 登入憑證授權單位,並執行 IAM 授權,確保您有權連線至 VM。
- OS 登入憑證授權單位會提供效期短暫的已簽署 SSH 憑證。
- Compute Engine 會驗證短期憑證,並授予連線權。
第三方工具
- 建立安全殼層金鑰組。詳情請參閱「 建立 SSH 金鑰」。
- 如果您先前未曾連線至使用 OS 登入功能的 VM,請佈建 POSIX 帳戶。
- Compute Engine 會以預設格式設定使用者名稱:
舉例來說,如果與 Google 帳戶相關聯的電子郵件地址是USERNAME_DOMAIN_SUFFIX
cloudysanfrancisco@gmail.com,則產生的使用者名稱為cloudysanfrancisco_gmail_com。 - 管理員可以視需要 使用 Google Workspace Admin SDK Directory API 設定使用者名稱。如果貴機構使用 員工身分聯盟,請與管理員聯絡,由對方為您變更使用者名稱。
- 將公開金鑰傳送給 OS 登入憑證授權單位。
- OS 登入憑證授權單位會提供短期簽署的 SSH 憑證。
- 您可以使用憑證連線至 VM。
- Compute Engine 會驗證短期憑證,並授予連線權。
後續步驟
- 進一步瞭解使用 OS 登入的好處。
- 設定 OS 登入,管理 VM 的存取權。
- 瞭解如何要求透過 OS 登入使用 SSH 憑證。
- 如果不想使用 OS 登入功能,請參閱這篇文章,瞭解如何管理中繼資料中的安全殼層金鑰。
- 瞭解如何連線至 VM。
- 如要瞭解如何診斷及解決 SSH 連線失敗的問題,請參閱「排解 SSH 問題」一文。