透過瀏覽器使用 SSH

透過瀏覽器建立 SSH 連線功能可讓您直接在 Google Cloud Platform 主控台 中使用安全殼層 (SSH) 連線至 Google Compute Engine 虛擬機器執行個體,而不需安裝網路瀏覽器擴充功能或其他軟體。「透過瀏覽器建立 SSH 連線」功能可做為其他執行個體連線方法的替代方案。

連線至 Linux 虛擬機器執行個體

每當您透過瀏覽器連線至 Linux 執行個體時,Compute Engine 都會為您管理 SSH 金鑰組,並視需要建立及套用 SSH 金鑰組。您無法管理透過瀏覽器連線時使用的 SSH 金鑰組,不過可以藉由身分與存取權管理 (IAM) 角色管理透過瀏覽器連線的使用者存取權。您可以在 Google Cloud Platform 主控台的 IAM 頁面中檢視專案的成員和 IAM 角色。

前往 IAM 頁面

如要透過瀏覽器連線,您必須是具備 Compute 執行個體管理員角色權限的專案成員。如果您的執行個體可以做為服務帳戶執行,那麼您也必須具備服務帳戶使用者角色權限。如果您沒有透過瀏覽器連線的存取權,請要求專案擁有者將您新增至專案並授予您存取權

獲得存取權後,請直接在 GCP 主控台中透過網路瀏覽器連線至 Linux 執行個體:

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

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

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

此外,您也可以在「執行個體詳細資料」頁面中依序點選執行個體名稱和 [SSH],藉此開啟執行個體的 SSH 連線。

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

支援的環境

「透過瀏覽器建立 SSH 連線」功能支援下列環境:

  • 網路瀏覽器:最新版 Google Chrome、Firefox、Microsoft Edge,以及 Microsoft Internet Explorer 11 以上版本和 Safari 8 以上版本。請注意,這項功能不支援 Safari 的私密瀏覽模式。
  • 虛擬機器設定:Google Cloud Platform 中內建可供使用的所有 Linux 虛擬機器映像檔。

已知問題

  • 啟動延遲:目前使用「透過瀏覽器建立 SSH 連線」功能的連線時間為 5 至 30 秒。在虛擬機器執行個體上運作的新版 Google Daemon 需要接近 5 秒的連線時間。除此之外的其他連線時間最長應為 30 秒。

  • 無法立即使用新的虛擬機器執行個體:在系統建立 SSH 前,新的執行個體需要一點時間才能啟動。如果您無法連線至新的執行個體,請等待幾分鐘後再試一次。

  • 間歇性連線中斷:我們目前並未針對連線生命週期提供特定的服務水準協議。如要讓終端機視窗持續開啟一段時間,請使用 tmuxscreen 等終端機數據多工器。

  • 無法連線至沒有外部 IP 位址的執行個體:您目前無法使用「透過瀏覽器建立 SSH 連線」功能連線至沒有外部 IP 位址的執行個體。如要解決這個問題,您可以使用這項功能透過 SSH 登入專案中其他具有外部 IP 位址的執行個體 (例如前端的執行個體),接著使用 ssh -A INTERNAL_IP 指令經由內部 IP 位址登入所需執行個體。登入第一個執行個體後,您大約須在兩分鐘內執行這個指令,否則 SSH 金鑰組就會失效,而您的登入憑證也無法再對轉送的連線生效。

  • 無法使用 Ctrl + W 鍵關閉視窗:Ctrl + W、Ctrl + F4、Ctrl + Tab 和其他可做為瀏覽器鍵盤快速鍵使用的按鍵組合無法經由 SSH 客戶端傳送至目標系統。如要傳送這些或其他快速鍵,請點選視窗右上角的鍵盤圖示。如果您是使用 Google Chrome 瀏覽器,則可安裝「SSH for Google Cloud Platform」擴充功能。這個擴充功能可讓您直接使用常見的瀏覽器鍵盤快速鍵 (例如 Ctrl + W),藉此針對「透過瀏覽器建立 SSH 連線」功能和 Google Cloud Shell 改善主控台的使用體驗。

處理「無法經由通訊埠 22 進行連線」錯誤訊息

以下情況可能會導致您看到這個錯誤訊息:

  • 執行個體正在啟動,但 sshd 並未執行。 請確認執行個體已完成啟動程序,然後再試一次。

  • 執行個體並未執行 sshd。根據預設,sshd 會在透過標準 Compute Engine 映像檔建立的執行個體上運行。如果您已手動停用 sshd,或設定了並未執行這項服務的自訂映像檔,則「透過瀏覽器建立 SSH 連線」功能將無法運作。

  • sshd 正在聽取的通訊埠不是您正在連線的通訊埠。根據預設,透過瀏覽器建立 SSH 連線功能會經由通訊通訊埠 22 連線至執行個體。如果您是經由自訂通訊埠執行 sshd,則可使用 SSH 按鈕下拉式選單中的「透過自訂通訊埠在瀏覽器視窗中開啟」項目連線至通訊埠 22。

  • 通訊埠沒有允許 SSH 存取權的防火牆規則。 根據預設,SSH 對通訊埠 22 的存取權會針對所有 Compute Engine 執行個體啟用。如果您停用了存取權,「透過瀏覽器建立 SSH 連線」功能將無法運作。如果您不是經由通訊埠 22 執行 sshd,則必須透過自訂防火牆規則啟用該通訊埠的存取權。

  • 允許 SSH 存取權的防火牆規則已啟用,不過在設定上不允許來自 GCP 主控台服務的連線。GCP 主控台會為透過瀏覽器執行的 SSH 工作階段動態分配來源 IP 位址,每次工作階段的位址都可能有所不同。為了讓功能順利運作,您必須允許來自任何 IP 位址或 Google IP 位址範圍的連線,您可以使用公開的 SPF 記錄擷取 Google IP 位址範圍。

  • 執行個體已關閉。 請確認執行個體已上線且正在運作。您可以參閱這篇指南,瞭解如何疑難排解健康狀態不佳的執行個體。

處理「無法連線,重試中...」錯誤

  • 執行個體並未執行 Google Daemon。Google Daemon 會在所有標準的 Google Compute Engine 映像檔上安裝及運作。「透過瀏覽器建立 SSH 連線」功能不支援自訂映像檔。您可以在序列主控台輸出頁面上尋找含有 accounts-from-metadata: 前置字串的輸出行,藉此確認 Daemon 正在運作。如果您是使用標準映像檔,卻無法在序列主控台輸出內容中找到這類輸出前置字串,則表示 Daemon 可能已停止運作。請重新啟動執行個體,讓 Daemon 再次開始運作。

  • 執行個體的啟動磁碟沒有可用空間。 在系統建立連線時,Daemon 會將 ~/.ssh/authorized_keys 檔案更新為當前工作階段使用的 SSH 金鑰組。如果磁碟沒有可用空間,這項更新作業就會失敗。請檢查執行個體的序列主控台輸出內容,如果發現「空間不足」錯誤,就表示發生的問題屬於這個情況。您可以透過以下方法嘗試修復這個問題:

    • 針對執行個體的永久啟動磁碟調整空間大小,增加其空間。如果執行個體使用的作業系統映像檔支援大小自動調整功能,這項功能就是您解決問題的最佳選項,因為作業系統會自動調整根磁碟分區的大小,藉此滿足執行個體重新啟動後對空間大小的新需求。
    • 如果您知道哪些檔案佔用了磁碟空間,請建立開機指令碼刪除不必要的檔案,藉此釋出空間供執行個體啟動。您必須重新啟動執行個體,指令碼才能執行並清理檔案。請仔細檢查您使用的指令和刪除的檔案是否正確。執行個體啟動後,如果您可以透過 SSH 連線至該執行個體,請重新設定 startup-script 中繼資料項目,以免繼續刪除檔案。
    • 參閱疑難排解指南,瞭解如何存取執行個體的磁碟。
  • 連線使用者在 $HOME$HOME/.ssh 目錄的權限有誤。 Google Daemon 必須能將公開 SSH 金鑰組儲存至連線使用者的 $HOME/.ssh/authorized_keys 檔案。$HOME/.ssh 目錄的 Unix 權限應為 0700,authorized_keys 檔案的 Unix 權限應為 0600,而使用者必須同時擁有這兩項權限。只要權限或擁有權設定有誤,就會造成連線問題。如要排解這個問題,請將使用者名稱變更為新的使用者名稱,讓系統建立新使用者和其主目錄;接著透過新使用者進行連線,並修正原有使用者目錄的權限問題。

複製/貼上

您可以使用瀏覽器和平台支援的鍵盤快速鍵 (Windows 和 Linux 系統的 Ctrl+C/Ctrl+V、macOS 的 Cmd+C/Cmd+V,以及 Chrome 作業系統的 Ctrl+Shift+V) 進行複製及貼上。一般來說,這些指令適用於大部分設定,但您的設定可能會呈現不同的結果。

捲動

您可以使用滑鼠滾輪或觸控板來捲動終端機頁面。此外,在 Windows 和 Linux 系統中也能使用 Ctrl-Shift-PageUp / Ctrl-Shift-PageDn 快速鍵捲動終端機頁面;在 macOS 中則可使用 Fn-Shift-Up / Fn-Shift-Down

登入使用者名稱

預設使用者名稱

根據預設,系統在產生 SSH 工作階段的使用者名稱時,會採用登入帳戶的電子郵件地址並省略網域資訊。舉例來說,如果電子郵件是 user@gmail.com,對應的使用者名稱就是 user

啟用 OS 登入功能情況下的預設使用者名稱

如果您已啟用 OS 登入功能,且 G Suite 管理員未設定使用者名稱,預設會設定較長的使用者名稱。此使用者名稱包含網域資訊。舉例來說,如果電子郵件是 user@gmail.com,對應的使用者名稱就是 user_gmail_com。如要進一步瞭解 OS 登入行為,請參閱預期的登入行為一文。

變更預設使用者名稱

您可以按照以下說明在 SSH 視窗中變更使用者名稱:

  1. 連線至虛擬機器執行個體
  2. 按一下 SSH 視窗右上角的 [Settings] (設定) 圖示 「設定」圖示
  3. 選取 [Change Linux Username] (變更 Linux 使用者名稱)。Linux 系統中登入名稱的長度上限為 32 個字元,預設和自訂的使用者名稱只要超出限制都會遭到截斷。
  4. (選用) 將資料複製到新主目錄。系統會將每個新使用者名稱都視為不同的 Unix 使用者;如果您曾使用主目錄儲存任何資料,則可透過 cp 指令將資料複製到新目錄,例如,如果您將使用者名稱從 user_gmail_com 變更為 user,請執行下列指令:

    # This will overwrite files in the target directory, so be careful.
    $ sudo cp -r /home/user_gmail_com/. /home/user
    
    $ sudo chown -R user:user /home/user
    
本頁內容對您是否有任何幫助?請提供意見:

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

這個網頁
Compute Engine 說明文件