連線至 Linux 執行個體

本指南將說明如何在 Linux、OSX 和 Windows 工作站使用常見的 SSH 工具來連線至 Linux 執行個體。如要連線至 Windows 執行個體,請改為透過 RDP 連線

如要在 Compute Engine 中連線至 Linux 執行個體,最簡單的方法是透過瀏覽器連線或使用 gcloud 工具連線

另外一種方法則是產生新的金鑰組並套用到您的專案,這樣就能使用第三方工具連線。比方說,您可以在 Linux 或 OSX 工作站透過 SSH 連線,或是在 Windows 工作站透過 PuTTY 連線

如果您屬於進階型的使用者,並有 SSH 金鑰管理作業自動化的需求,或是只想在特定執行個體設定公開 SSH 金鑰,請參閱設定自動化 SSH 金鑰管理作業

事前準備

透過瀏覽器連線至執行個體

如何直接在 Google Cloud Platform 主控台中透過瀏覽器建立 SSH 連線:

  1. In the Cloud Platform Console, go to the VM Instances page.

    Go to the VM Instances page

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

透過瀏覽器連線至執行個體需要注意一些事項,詳情請參閱透過瀏覽器建立 SSH 連線

透過命令列連線至執行個體

您可以使用 gcloud 指令列工具輕鬆地連線至 Linux 執行個體。gcloud 工具能夠協助您管理 SSH 金鑰,在必要時針對整個新專案產生及套用這些金鑰。

如要連線至執行個體,請使用 gcloud compute ssh 指令:

gcloud compute ssh [INSTANCE_NAME]

其中的 [INSTANCE_NAME] 是執行個體的名稱。

您現在可以在 Linux 執行個體使用終端機執行指令。完成後,請使用 exit 指令中斷執行個體連線。

產生新的 SSH 金鑰組

您必須先產生新的 SSH 金鑰組,並且將公開金鑰套用到您的專案,才能使用 SSH 或 SCP 存取您的執行個體。如果已經使用過 gcloud 工具連線至執行個體,這表示您的專案已套用過金鑰。金鑰所在位置如下:

  • Linux 和 OSX
    • 公開金鑰:$HOME/.ssh/google_compute_engine.pub
    • 私密金鑰:$HOME/.ssh/google_compute_engine
  • Windows:
    • 公開金鑰:C:\Users\[USER_NAME]\.ssh\google_compute_engine.pub
    • 私密金鑰:C:\Users\[USER_NAME]\.ssh\google_compute_engine

其中的 [USER_NAME] 是您在本機工作站的使用者名稱。

或者,您可以自行以手動方式產生金鑰組。

Linux 和 OSX


如何在 Linux 或 OSX 工作站產生新的 SSH 金鑰組:

  1. 在您的工作站開啟終端機,然後使用 ssh-keygen 指令產生新的金鑰組。指定 -C 標記以透過您的 Google 使用者名稱來新增註解。這個範例建立了 my-ssh-key 私密金鑰,以及 my-ssh-key.pub 公開金鑰檔案。

    ssh-keygen -t rsa -f ~/.ssh/my-ssh-key -C [USERNAME]
    

    指令中的 [USERNAME] 是執行個體中要套用金鑰的使用者。如果執行個體中沒有該使用者,Compute Engine 會自動使用您在這個指令中 指定的使用者名稱。

  2. 限制 my-ssh-key 私密金鑰存取權,設為只有您具備讀取權限,其他人無法寫入。

    chmod 400 ~/.ssh/my-ssh-key
    
  3. 前往專案的中繼資料頁面。

    前往「中繼資料」頁面

  4. 按一下 [SSH 金鑰],查看全專案公開 SSH 金鑰清單。

  5. 按一下 [編輯] 按鈕,以便修改專案中的公開 SSH 金鑰。

  6. 使用 cat 指令取得 ~/.ssh/my-ssh-key.pub 公開金鑰檔案內容。

    cat ~/.ssh/my-ssh-key.pub
    

    終端機顯示的公開金鑰格式如下:

    ssh-rsa [KEY_VALUE] [USERNAME]
    

    其中的元素:

    • [KEY_VALUE] 是產生的公開金鑰值。
    • [USERNAME] 是您的使用者名稱。
  7. 複製 cat 指令輸出的內容,以新增項目的形式貼到 SSH 金鑰清單中。

  8. 在「SSH 金鑰」頁面底部按一下 [儲存],讓系統儲存新的專案通用 SSH 金鑰。

公開金鑰現已設為可用於您專案中的所有執行個體, 使用 ssh 指令即可連線至您的執行個體。

Windows


如需在 Windows 工作站產生新的 SSH 金鑰組,請採取下列步驟:

  1. 下載 puttygen.exe

  2. 執行 PuTTYgen。在本範例中,請直接執行您所下載的 puttygen.exe 檔案。系統隨即會開啟視窗,讓您在其中配置金鑰產生設定。

  3. 按一下 [產生] 按鈕即可產生新的金鑰組。在大多數情況下,預設的參數都不需調整。金鑰組產生完成後,這項工具就會顯示您的公開金鑰值。

  4. 在「金鑰註解」段落中,輸入您的 Google 使用者名稱。請使用以下金鑰結構:

    ssh-rsa [KEY_VALUE] [USERNAME]
    

    其中的元素:

    • [KEY_VALUE] 是您產生的金鑰值。
    • [USERNAME] 是您的 Google 使用者名稱。
  5. (選用) 輸入金鑰通關密語,確保金鑰安全。

  6. 按一下 [儲存私密金鑰],以檔案形式儲存私密金鑰。在本範例中,請將金鑰儲存為 my-ssh-key.ppk

  7. 按一下 [儲存公開金鑰],將公開金鑰寫入檔案,供日後使用。 暫時不要關閉 PuTTYgen 視窗。

  8. 前往專案的中繼資料頁面。

    前往「中繼資料」頁面

  9. 按一下 [SSH 金鑰],查看全專案公開 SSH 金鑰清單。

  10. 按一下 [編輯] 按鈕,以便修改專案中的公開 SSH 金鑰。

  11. 複製 PuTTYgen 工具中的完整公開金鑰值,並以新增項目的形式貼到「中繼資料」頁面的 SSH 金鑰清單中。 公開金鑰值位於 PuTTYgen 畫面頂端:

    PuTTYgen 公開金鑰螢幕擷取畫面

  12. 在「SSH 金鑰」頁面底部按一下 [儲存],讓系統儲存新的專案通用 SSH 金鑰。

公開金鑰現已套用至專案中的所有執行個體, 您可以使用 PuTTY 連線至執行個體。

在 Linux 或 OSX 工作站使用 SSH 連線

如何使用 SSH 連線至您的執行個體:

  1. 如果您尚未將公開金鑰套用到您的 Cloud Platform 主控台專案,請產生新的金鑰組並套用到您的專案

  2. 在主控台中,找出您要連線的執行個體的外部 IP。如要找出您的執行個體清單,請點選以下連結:

    前往「執行個體」頁面

  3. 使用 ssh 指令連線至您的執行個體。為您要連線的執行個體指定使用者名稱和外部 IP 位址。您的使用者名稱是您存取專案時所使用的 Google 使用者名稱。在本範例中,私密金鑰位於 ~/.ssh/my-ssh-key

    ssh -i ~/.ssh/my-ssh-key [USERNAME]@[IP_ADDRESS]
    

    其中的元素:

    • [USERNAME] 是您的使用者名稱
    • [IP_ADDRESS] 是執行個體的 IP。

如果連線成功,即可在執行個體上使用終端機執行指令。完成後,請使用 exit 指令中斷執行個體連線。

在 Windows 工作站使用 PuTTY 連線

您可以在 Windows 工作站使用 PuTTY 工具連線至執行個體。如何使用 PuTTY 連線至您的執行個體:

  1. 如果尚未將公開金鑰套用到您的 Cloud Platform 主控台專案, 請產生新的金鑰組並套用到您的專案

  2. 下載 putty.exe

  3. 執行 PuTTY 工具。在此範例中,請直接執行您所下載的 putty.exe 檔案。系統隨即會開啟視窗,讓您在其中調整連線設定。

  4. Google Cloud Platform 主控台中,找出您要連線的執行個體的外部 IP。如要找出您的執行個體清單,請點選以下連結:

    前往「執行個體」頁面

  5. 在 PuTTY 工具的 [主機名稱] 欄位中,為您要連線的執行個體指定 Google 使用者名稱和外部 IP 位址。您的使用者名稱是您存取專案時所使用的 Google 使用者名稱。在本範例中,使用者是 example-user,外部 IP 位址則是 104.196.31.103

    使用 example-user@104.196.31.103 設定「主機名稱」欄位

  6. 在 PuTTY 視窗左側依序前往 [連線] > [SSH] > [驗證]

  7. 將「用於驗證的私密金鑰檔案」欄位的值設為私密金鑰檔案的路徑。本範例指定了 my-ssh-key.ppk 檔案的路徑。

    在私密金鑰檔案欄位中設定 my-ssh-key.ppk 檔案的路徑。

  8. 按一下 [開啟] 即可開啟終端機,進而連線至您的執行個體。

如果連線成功,即可在執行個體上使用終端機執行指令。完成後,請使用 exit 指令中斷執行個體連線。

連線至沒有外部 IP 位址的執行個體

如果是連線至有外部 IP 位址的執行個體,只要使用內部 IP 位址,即可從該執行個體連線至位於相同 VPC 網路上的任何執行個體。不過,即使執行個體沒有外部 IP 位址,仍然可以連線。

這項程序必須符合下列先決條件:

  • 兩個執行個體須位於同一個 VPC 網路上,其中一個執行個體有外部 IP 位址,另一個沒有。
  • 防火牆規則必須允許透過通訊埠 22 建立 SSH 連線,該防火牆規則為 default VPC 網路的預設規則。兩個執行個體都必須位在這個 VPC 網路上。

如需連線至沒有外部 IP 位址的執行個體,請採取下列步驟:

  1. 如果您尚未將公開金鑰套用到您的 Cloud Platform 主控台專案,請產生新的金鑰組並套用到您的專案

  2. 在本機電腦啟動 ssh-agent,為您管理金鑰:

    eval `ssh-agent`
    
  3. 使用 ssh-add 指令,將您的公開金鑰從本機電腦載入代理程式,並且讓所有 SSH 指令使用這些公開金鑰進行驗證。

    ssh-add ~/.ssh/[PRIVATE_KEY]
    

    其中的 [PRIVATE_KEY] 是私密金鑰檔案的檔案名稱。

  4. 連線至有外部 IP 位址的執行個體並加入 -A 引數,啟用驗證代理程式轉址功能。

    gcloud compute ssh --ssh-flag="-A" [EXTERNAL_INSTANCE_NAME]
    

    其中的 [EXTERNAL_INSTANCE_NAME] 是有外部 IP 位址的執行個體名稱。

  5. 連線至有外部 IP 位址的執行個體後,即可使用 ssh 連線至相同 VPC 網路中的任何其他執行個體。

    $ ssh [INTERNAL_INSTANCE_NAME]
    

    其中的 [INTERNAL_INSTANCE_NAME] 是您要連線的第二個執行個體名稱。

  6. 完成後,請使用 exit 指令逐一中斷執行個體連線。

    $ exit
    

root 使用者身分連線至執行個體

公開映像檔和多數常見的作業系統皆預設禁止透過 SSH 執行 root 登入作業。根據最佳做法,/etc/ssh/sshd_config SSH 設定檔的 PermitRootLogin 參數通常都設為 no

由於這個參數的緣故,即使您在專案或執行個體中繼資料中為 root 指定 SSH 金鑰,仍無法透過 root 使用者身分連線至執行個體。如果使用者要求 root 權限,只要透過 sudo 執行指令,即可取得權限。

後續步驟

隨時隨地監控你的資源

下載 Google Cloud Console 應用程式,管理專案更加得心應手。

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

這個網頁
Compute Engine Documentation