設定互動式序列主控台

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

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

  • 搭載 TS54 (43.45.00.002) 以上韌體版本的通用伺服器。
  • 記憶體最佳化伺服器,韌體版本為 3.50.58 以上。

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

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

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

事前準備

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

  2. 授予使用者適當的身分與存取權管理 (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) 金鑰組

產生安全殼層金鑰組,驗證您對序列控制台的存取權。每個專案只需執行這項操作一次。

從跳躍主機 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 的檔案。

註冊安全殼層金鑰

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

gcloud

如要註冊安全殼層金鑰組,請執行 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

如要註冊安全殼層金鑰,請輸入專案 ID、安全殼層金鑰 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 -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. 輸入 ~. (波浪號後面加上句號)。

針對 Bare Metal 解決方案上的 SAP HANA,請使用 CTRL + ] q 中斷與互動式序列主控台的連線。

管理安全殼層金鑰

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

列出安全殼層金鑰

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

gcloud

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

gcloud bms ssh-keys list --project=PROJECT_ID

更改下列內容:

  • PROJECT_ID:您的專案 ID。

API

如要列出公開安全殼層金鑰,請輸入專案 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

如要刪除公開安全殼層金鑰,請輸入專案 ID 和安全殼層金鑰 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:伺服器名稱。