連線至執行個體

本頁說明了一些常見的連線方式,有助於您瞭解如何連線到 Compute Engine Linux 執行個體與 Compute Engine Windows 執行個體。

您也可以參考以下的連結,瞭解還有哪些其他連線到執行個體的方式:

連線之前,請先查看下列注意事項:

連線至 Linux 執行個體

如要透過 Google Cloud Platform 主控台SDK 中的 gcloud 指令列工具連線至 Linux 執行個體,請按照下列分頁中的步驟進行:

如果這些基本 SSH 選項都不適用,您可能需要使用第三方工具連線至執行個體連線至沒有外部 IP 位址的執行個體

主控台

  1. 前往 GCP 主控台的「VM Instances」(VM 執行個體) 頁面。

    前往「VM Instances」(VM 執行個體) 頁面

  2. 在虛擬機器執行個體清單中,找到您要建立連線的執行個體,然後在該列中按一下 [SSH]

gcloud

您可以使用 gcloud compute ssh 指令連線至您有權存取的執行個體。

gcloud compute ssh --project [PROJECT_ID] --zone [ZONE] [INSTANCE_NAME]

其中:

  • [PROJECT_ID] 是包含執行個體的專案 ID。
  • [ZONE] 是執行個體所在的區域名稱。
  • [INSTANCE_NAME] 是執行個體的名稱。

如果已為 gcloud 指令列工具設定預設屬性,則可省略此指令中的 --project--zone 標記。例如:

gcloud compute ssh [INSTANCE_NAME]

連線之後,請在 Linux 執行個體中使用終端機來執行指令。完成後,使用 exit 指令中斷與執行個體的連線。

SSH 金鑰的位置

在您第一次連線後,Compute Engine 會產生 SSH 金鑰組合,並儲存在以下其中一個位置:

  • 根據預設,Compute Engine 會將產生的金鑰新增至專案或執行個體的中繼資料
  • 如果您的帳戶設定為使用 OS 登入,Compute Engine 會把產生的金鑰儲存在您的使用者帳戶中。

如果您是依照本文件所述的方式連線,就不需要知道 SSH 金鑰的存放位置,但如果要用使用進階方式連線至執行個體一文介紹的替代方式或進階方式來連線,就需要知道存放位置。

儲存主機金鑰

主機金鑰是用於識別特定主機或機器的金鑰組。當您連線至遠端主機時,即可使用主機金鑰確認自己是否連接至預定的機器。

如果您是使用 gcloud beta compute ssh 連線至 Linux 執行個體,則可將主機金鑰儲存為訪客屬性,藉以提供另一層安全防護。

將 SSH 主機金鑰儲存為訪客屬性,有助於防止攔截式 (MITM) 攻擊之類的安全漏洞,進而改善連線的安全性。初始啟動 VM 執行個體時,如果已啟用訪客屬性,Compute Engine 就會將您所產生的主機金鑰儲存為訪客屬性。Compute Engine 之後就會使用初始啟動期間儲存的這些主機金鑰來驗證 VM 執行個體的所有後續連線。

支援的作業系統

下列作業系統支援將主機金鑰儲存為訪客屬性:

  • Debian
  • Red Hat Enterprise Linux (RHEL)
  • CentOS
  • SUSE Enterprise Linux 伺服器 (SLES)

主機金鑰只能在初次啟動 VM 執行個體時寫入訪客屬性。因此初次啟動 VM 執行個體前,您就必須先啟用訪客屬性,如此才能將主機金鑰寫入訪客屬性。

如要將主機金鑰儲存為訪客屬性,請完成下列步驟:

  1. 初次啟動 VM 執行個體之前,請先啟用訪客屬性。您可以在整個專案上或是於執行個體建立期間在所選 VM 執行個體上啟用訪客屬性。如要啟用訪客屬性,請參閱在執行個體上啟用訪客屬性
  2. 使用 gcloud beta compute SSH 連線至執行個體。

    1. 確認您擁有最新版的 gcloud 指令列工具。

      gcloud components update
      
    2. 連線至執行個體。

      gcloud beta compute ssh --project [PROJECT_ID] --zone [ZONE] [INSTANCE_NAME]
      

      其中:

      • [PROJECT_ID] 是包含執行個體的專案 ID。
      • [ZONE] 是執行個體所在的區域名稱。
      • [INSTANCE_NAME] 是執行個體的名稱。

      如果已為 gcloud 指令列工具設定預設屬性,則可省略此指令中的 --project--zone 標記。例如:

       gcloud beta compute ssh [INSTANCE_NAME]
      
    3. 查看啟動訊息。比方說,Debian 作業系統可能會顯示下列訊息:

      Writing 3 keys to [YOUR_HOME_DIRECTORY]/.ssh/google_compute_known_hosts
      Linux host-key-2 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u3 (2019-06-16) x86_64
  3. 確認是否已儲存主機金鑰

確認已將主機金鑰儲存為訪客屬性

如要確認是否已將主機金鑰儲存為訪客屬性,請查看執行個體的序列埠或主機金鑰值。

選項 1:查看序列埠

  1. 存取序列埠輸出,詳情請參閱查看序列埠輸出內容
  2. 選取序列埠 1
  3. 搜尋下列訊息:

    INFO Wrote ssh-rsa host key to guest attributes
    

    如果您的映像檔使用支援的作業系統,但是在第一次 VM 開機前未啟用訪客屬性,則可能會看到下列訊息:

    Unable to write ssh-rsa host key to guest attributes
    

    這表示您並未將主機金鑰儲存為此執行個體的訪客屬性。如果要為打算建立的其他執行個體儲存主機金鑰,請務必在初次啟動執行個體之前,先啟用訪客屬性。

選項 2:查看主機金鑰值

您可以使用 gcloud 指令列工具來確認已將 ssh 金鑰寫入訪客屬性。

 gcloud compute instances get-guest-attributes [INSTANCE_NAME] --query-path "hostkeys/" --zone [ZONE]

其中:

  • [ZONE] 是執行個體所在的區域名稱。
  • [INSTANCE_NAME] 是執行個體的名稱。

輸出內容可能如下所示:

NAMESPACE  KEY                  VALUE
hostkeys   ecdsa-sha2-nistp256  AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBJAGpTm
                                V3mFxBTHK1NIu9a7kVQWaHsZVaFUsqF8cLxQRQ+N96/Djiiuz1tucHQ8vBTJI=
hostkeys   ssh-ed25519          AAAAC3NzaC1lZDI1NTE5AAAAIM/WYBn3jIEW5t3BZumx0X/Htm61J6S9FcU8L
hostkeys   ssh-rsa              AAAAB3NzaC1yc2EAAAADAQABAAABAQDU3jReR/MoSttlWYfauW6qEqS2dhe5
                                Zdd3guYk2H7ZyxblNuP56nOl/IMuniVmsFa9v8W6MExViu6G5Cy4iIesot09
                                1hsgkG0U7sbWrXM10PQ8pnpI3B5arplCiEMhRtXy64rlW3Nx156bLdcxv5l+
                                7Unu4IviKlY43uqqwSyTv+V8q4ThpQ9dNbk1Gg838+KzazljzHahtbIaE1rm
                                I0L1lUqKiKLSLKuBgrI2Y/WSuqvqGEz+bMH7Ri4ht+7sAwykph6FbOgKqoBI
                                hVWBo38/Na/gEuvtmgULUwK+xy9zWg9k8k/Qtihc6El9GD9y

連線至 Windows 執行個體

如要透過 Google Cloud Platform 主控台中的遠端桌面通訊協定 (RDP) 或圖形使用者介面連線至 Windows 執行個體,請按照下列分頁中的步驟進行:

使用圖形 RDP 用戶端連線

請檢查您的虛擬私人雲端防火牆規則,確認允許使用 RDP。

在連線前,請確認您已建立 Windows 執行個體密碼,並準備好在下個步驟中輸入密碼:

主控台

如要將 GCP 主控台與 Chrome RDP 擴充功能搭配使用,請按照下列步驟進行:

  1. 安裝 Google Cloud Platform 適用的 Chrome RDP 擴充功能

  2. 前往 GCP 主控台的 VM 執行個體頁面,並找到要連線的 Windows 執行個體。

    前往 VM 執行個體頁面

  3. 在要連線的執行個體上,按一下 [RDP] 按鈕,Chrome RDP 擴充功能會隨即開啟。

  4. 輸入網域、使用者名稱和密碼,然後按一下 [OK] (確定) 即可連線。

    含有必要選項集合的執行個體建立視窗。

    如果執行個體並未設定網域,請將「Domain」(網域) 欄位留空白。

  5. 看到提示訊息時,請按 [Continue] (繼續) 接受憑證。

遠端桌面功能

如要與 Microsoft Windows 遠端桌面連線,請執行下列步驟:

  1. 在 VM 執行個體頁面上,找出您 Windows 執行個體的外部 IP 位址。

    前往「VM instances」(VM 執行個體) 頁面

    也可以在 gcloud 指令列工具執行 gcloudinstances list 指令,找出外部 IP 位址:

    gcloud compute instances list
    
  2. 在 Windows 電腦上,開啟 Microsoft Windows 遠端桌面連線。

    mstsc 連線視窗的螢幕擷取畫面

  3. 在「電腦」欄位中輸入外部 IP 位址。按一下 [連線]

  4. 輸入您的使用者名稱和密碼。按一下 [確定] 即可連線。

其他

如要使用支援 RDP 的其他平台上的用戶端進行連線 (例如客戶針對 Android、iOS、Mac 與其他 OS 開發的平台),請執行下列步驟:

  1. 在 VM 執行個體頁面上,找出您 Windows 執行個體的外部 IP 位址。

    前往「VM instances」(VM 執行個體) 頁面

    也可以在 gcloud 指令列工具執行 gcloudinstances list 指令,找出外部 IP 位址:

    gcloud compute instances list
    
  2. 依照客戶的安裝說明來安裝支援的用戶端。

  3. 使用執行個體的外部 IP 位址連線,並以您的使用者名稱與密碼進行執行個體的驗證。

如需官方支援的用戶端清單,請參閱 Microsoft 的遠端桌面用戶端文章。

如果使用 RDP 連線時遇到困難,請參閱 RDP 疑難排解頁面。

使用指令列連線至 Windows 執行個體

本節說明如何使用互動式序列主控台或 Windows Special Administrative Console (SAC) 連線至 Windows 執行個體,這通常是用來進行 Windows 執行個體上的進階疑難排解。

如要進一步瞭解如何使用互動式序列主控台,請參閱與序列主控台互動

連線前,請確認您已建立並準備好 Windows 執行個體密碼

如要使用互動式序列主控台連線至您的 Windows 執行個體,請按照下列分頁中的步驟進行:

主控台

如要使用互動式序列主控台連線至您的 Windows 執行個體,請進行下列步驟:

  1. 開啟 GCP 主控台中的「VM instances」(VM 執行個體) 頁面,然後點選執行個體的名稱。「VM instance details」(VM 執行個體詳細資料) 頁面隨即開啟。

    前往 VM 執行個體頁面

  2. 按一下 [Edit] (編輯)。在「Remote access」(遠端存取) 底下,選取 [Enable connecting to serial ports] (啟用序列埠連線)。這會啟用執行個體的互動式序列主控台。

    編輯執行個體詳細資料畫面設定。

    此外,如要將相關設定套用於您專案中的所有執行個體,請改為為專案全面設定自訂的中繼資料

    如要進一步瞭解如何更新執行個體中繼資料,請參閱儲存和擷取執行個體中繼資料

  3. 按一下 [Save] (儲存),然後回到頁面頂端。

  4. 在「Remote access」(遠端存取) 下方,按一下位於「Connect to serial console」(連線至序列主控台) 旁的下拉式清單,並選取 [Serial port 2] (序列埠 2)Windows Special Administrative Console (SAC) 隨即開啟。

  5. 出現 SAC> 提示訊息時,執行 cmd 以建立新的管道。SAC 會傳回管道名稱,例如 Cmd001

  6. 執行 ch -sn [CHANNEL_NAME] 並按下任何按鈕,即會連線至管道。例如:

    SAC> cmd
    The Command Prompt session was successfully launched.
    SAC>
    EVENT:   A new channel has been created.  Use "ch -?" for channel help.
    Channel: Cmd0001
    SAC> ch -sn cmd0001
    Press any key to confirm connection to the channel.
    
  7. 輸入執行個體的使用者名稱、網域和密碼,以進行連線。

gcloud

如要透過 gcloud 指令列工具使用互動式序列主控台連線至 Windows 執行個體,請執行下列步驟:

  1. 如果您尚未針對本機作業系統下載並安裝 Cloud SDK,請執行此操作。詳情請參閱安裝 Cloud SDK

  2. 啟動 Cloud SDK。

  3. 執行以下指令,將執行個體設定為允許連線至序列埠:

    gcloud compute instances add-metadata [INSTANCE_NAME]
    --metadata=serial-port-enable=1
    

    選用:如要將相關設定套用於您專案中的所有執行個體,請改為執行下列 Cloud SDK 指令:

    gcloud compute project-info add-metadata
    --metadata=serial-port-enable=1
    

    如要進一步瞭解全專案自訂中繼資料,請參閱設定全專案自訂中繼資料

    如要進一步瞭解如何更新中繼資料,請參閱更新執行個體中繼資料

  4. 執行下列 gcloud 指令,輸入互動工作階段:

    gcloud compute connect-to-serial-port [INSTANCE_NAME] --port=2
    

    SAC 互動工作階段。

  5. 出現 SAC> 提示訊息時,執行 cmd 以建立新的管道。SAC 會傳回管道名稱,例如 Cmd001

  6. 執行 ch -sn [CHANNEL_NAME] 並按下任何按鈕,即會連線至管道。例如:

    SAC> cmd
    The Command Prompt session was successfully launched.
    SAC>
    EVENT:   A new channel has been created.  Use "ch -?" for channel help.
    Channel: Cmd0001
    SAC> ch -sn cmd0001
    Press any key to confirm connection to the channel.
    
  7. 輸入執行個體的使用者名稱、網域和密碼,以進行連線。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件