設定互動式序列主控台

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

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

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

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

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

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

事前準備

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

  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。

刪除安全殼層金鑰

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

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:伺服器名稱。