設定互動式序列主控台

Bare Metal 解決方案提供互動式序列埠主控台,可存取 Bare Metal 解決方案伺服器。您可以在序列埠中直接執行指令並回應提示。您可以使用序列埠主控台執行設定和疑難排解工作。Bare Metal Solution 伺服器會使用第一個序列埠 (通訊埠 1) 做為序列主控台。

互動式序列主控台僅支援下列伺服器:

  • 韌體版本為 TS54 (43.45.00.002) 以上的一般用途伺服器。
  • 韌體版本為 3.50.58 以上的記憶體最佳化伺服器。

開始前,請務必將伺服器升級至最新韌體。請參閱事前準備一節。

系統可能會強制中斷超過 30 天的互動式序列主控台連線。

本文說明如何在伺服器上啟用及停用互動式序列主控台存取權。

事前準備

  1. 啟用 Bare Metal Solution API。請參閱設定 Google Cloud 專案以使用 Bare Metal Solution API

  2. 授予使用者適當的 Identity and Access Management (IAM) 角色。 如要執行本文中的所有工作,您必須具備下列任一角色:

    • roles/baremetalsolution.admin
    • roles/baremetalsolution.editor
  3. 確認韌體版本符合需求:

    • 一般用途伺服器:TS54 (43.45.00.002) 以上版本。
    • 記憶體最佳化伺服器:3.50.58 以上版本。

    步驟如下:

    1. 在 Bare Metal 解決方案伺服器上,執行下列指令:

      sudo dmidecode -s bios-version
      

      如果成功,輸出內容會顯示必要 BIOS 版本或更高版本。舉例來說,如果是通用伺服器,輸出內容會顯示 BIOS 版本為 43.45.00.002 以上:

      Version: BIOS_PUR043.45.00.002
      
    2. 如果 BIOS 版本低於必要韌體,請升級伺服器的韌體。如需升級協助,請與客戶服務團隊聯絡。

  4. 如果您的 Bare Metal 解決方案伺服器是在 2022 年 6 月前佈建,核心啟動參數可能缺少互動式序列主控台所需的設定。反之,如果是在 2022 年 6 月後佈建,則必要設定可能已整合至 OS 映像檔。不過,OS 修補或企業專屬政策強制執行作業,可能會變更預設核心啟動參數。無論如何,建議您確認互動式序列主控台所需的 OS 設定是否可用。

    如要確保作業系統具備互動式序列主控台的必要設定,請按照下列步驟操作:

    1. /etc/default 目錄中找出 GRand Unified Bootloader (GRUB) 設定檔。
    2. 確認 GRUB 設定檔包含下列設定:

      GRUB_CMDLINE_LINUX="(append to the existing value) console=tty0 console=ttyS0,115200"
      GRUB_TERMINAL_OUTPUT="console serial"
      GRUB_TERMINAL="console serial"
      GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
      

      如果檔案包含這些設定,請略過其餘說明。您可以使用 GRUB 設定檔存取序列埠主控台。

    3. 如果 GRUB 設定檔沒有這些設定,請手動新增。

    4. 執行 grub-mkconfig 指令來處理變更。詳情請參閱 GRUB 說明文件

    5. 重新啟動伺服器。

啟用互動式序列主控台存取權

如要啟用及存取互動式序列主控台,請按照下列步驟操作:

  1. 啟用互動式序列主控台存取權
  2. 產生 SSH 金鑰
  3. 註冊安全殼層金鑰
  4. 連線至伺服器

啟用互動式序列主控台存取權

使用互動式序列控制台前,請務必先在伺服器上啟用存取權。

gcloud

如要啟用互動式序列埠存取權,請執行 gcloud bms instances enable-serial-console 指令。

gcloud bms instances enable-serial-console SERVER_NAME --project=PROJECT_ID --region=REGION

更改下列內容:

  • SERVER_NAME:伺服器名稱。
  • PROJECT_ID:專案 ID。
  • REGION:伺服器區域。

API

如要啟用互動式序列主控台的存取權,請輸入專案 ID、區域和伺服器名稱,然後發出下列 curl 指令。

curl -v \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME:enableInteractiveSerialConsole"

更改下列內容:

  • PROJECT_ID:專案 ID。
  • REGION:伺服器區域。
  • SERVER_NAME:伺服器名稱。

產生安全殼層 (SSH) 金鑰組

產生 SSH 金鑰組,驗證序列控制台存取權。每項專案只需要執行這項操作一次。

從跳板主機 VM 執行個體或其他連上網際網路的終端機執行 ssh-keygen 指令,建立新的 SSH 金鑰組。

  ssh-keygen -b 4096 -f SSH_KEY_ID -N 'PASSPHRASE' -t rsa
  

更改下列內容:

  • SSH_KEY_ID:用於產生公開和私密金鑰的安全殼層金鑰檔案根名稱。
  • PASSPHRASE:透過序列主控台存取伺服器時使用的密碼。

ssh-keygen 指令會將私密金鑰儲存至名為 SSH_KEY_ID 的檔案,並將公開金鑰儲存至主目錄中名為 SSH_KEY_ID.pub 的檔案。

註冊安全殼層金鑰

如要驗證序列主控台的存取權,請在專案中註冊 SSH 金鑰。每個金鑰組只需要執行一次這項操作。

gcloud

如要註冊 SSH 金鑰,請執行 gcloud bms ssh-keys add 指令。

gcloud bms ssh-keys add SSH_KEY_ID --project=PROJECT_ID --key-file=SSH_KEY_ID.pub

更改下列內容:

  • SSH_KEY_ID:用於產生公開和私密金鑰的安全殼層金鑰檔案根名稱。
  • PROJECT_ID:專案 ID。
  • REGION:伺服器區域。
  • SERVER_NAME:伺服器名稱。

API

如要註冊 SSH 金鑰,請輸入專案 ID、SSH 金鑰 ID 和公開金鑰檔案名稱,然後發出下列 curl 指令。

curl -v \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/global/sshKeys?ssh_key_id=SSH_KEY_ID" \
--data "{\"public_key\": \"$(cat SSH_KEY_ID.pub)\"}"

更改下列內容:

  • PROJECT_ID:專案 ID。
  • SSH_KEY_ID:用於產生公開和私密金鑰的安全殼層金鑰檔案根名稱。

如要管理專案中的 SSH 金鑰,請參閱「管理 SSH 金鑰」。

連線至伺服器

連線至互動式序列主控台前,您可以選擇使用序列主控台的主機金鑰驗證連線,確保您不會受到冒用身分或攔截式攻擊。

使用 SSH 存取互動式序列主控台。執行下列指令:

  ssh -i SSH_KEY_ID -p 9600 PROJECT_ID.REGION.SERVER_NAME.USERNAME.bms=true@\REGION\-ssh-serialport.googleapis.com
  

更改下列內容:

  • SSH_KEY_ID:用於產生公開和私密金鑰的安全殼層金鑰檔案根名稱。
  • PROJECT_ID:專案 ID。
  • REGION:伺服器區域。
  • SERVER_NAME:伺服器名稱。
  • USERNAME:透過序列埠主控台存取 Bare Metal 解決方案伺服器時使用的使用者名稱。

系統提示時,請輸入先前設定的 SSH 金鑰通關密語。視需要按下 EnterReturn 鍵,即可存取互動式序列主控台。

中斷與互動式序列主控台的連線

如要中斷與序列埠主控台的連線,請按照下列步驟操作:

  1. 按下 ENTERRETURN 鍵。
  2. 輸入 ~. (波浪號後面加上句號)。

管理安全殼層金鑰

系統會根據個別專案儲存 SSH 金鑰。您可以透過下列方式管理安全殼層金鑰:

列出安全殼層金鑰

您可以列出專案中註冊的公開安全殼層金鑰。

gcloud

如要列出公開安全殼層金鑰,請執行 gcloud bms ssh-keys list 指令。

gcloud bms ssh-keys list --project=PROJECT_ID

更改下列內容:

  • PROJECT_ID:專案 ID。

API

如要列出公開 SSH 金鑰,請輸入專案 ID 並發出下列 curl 指令。

curl -v \
-X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/global/sshKeys"

更改下列內容:

  • PROJECT_ID:專案 ID。

刪除 SSH 金鑰

您可以從專案的授權金鑰清單中刪除安全殼層金鑰。

gcloud

如要刪除公開安全殼層金鑰,請執行 gcloud bms ssh-keys remove 指令。

gcloud bms ssh-keys remove SSH_KEY_ID --project=PROJECT_ID

更改下列內容:

  • SSH_KEY_ID:用於產生公開和私密金鑰的安全殼層金鑰檔案根名稱。
  • PROJECT_ID:專案 ID。

API

如要刪除公開 SSH 金鑰,請輸入專案 ID 和 SSH 金鑰 ID,然後發出下列 curl 指令。

curl -v \
-X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/global/sshKeys/SSH_KEY_ID"

更改下列內容:

  • PROJECT_ID:專案 ID。
  • SSH_KEY_ID:用於產生公開和私密金鑰的安全殼層金鑰檔案根名稱。

停用互動式序列主控台存取權

如要在伺服器上停用互動式序列主控台存取權,請按照下列說明操作。

gcloud

如要停用互動式序列主控台,請執行 gcloud bms instances disable-serial-console 指令。

gcloud bms instances disable-serial-console SERVER_NAME --project=PROJECT_ID --region=REGION

更改下列內容:

  • SERVER_NAME:伺服器名稱。
  • PROJECT_ID:專案 ID。
  • REGION:伺服器區域。

API

如要停用互動式序列主控台,請輸入專案 ID、區域和伺服器名稱,然後發出下列 curl 指令。

curl -v \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME:disableInteractiveSerialConsole"

更改下列內容:

  • PROJECT_ID:專案 ID。
  • REGION:伺服器區域。
  • SERVER_NAME:伺服器名稱。