設定互動式序列主控台
Bare Metal 解決方案提供互動式序列埠主控台,可存取 Bare Metal 解決方案伺服器。您可以在序列埠中直接執行指令並回應提示。您可以使用序列埠主控台執行設定和疑難排解工作。Bare Metal Solution 伺服器會使用第一個序列埠 (通訊埠 1) 做為序列主控台。
互動式序列主控台僅支援下列伺服器:
- 韌體版本為
TS54(43.45.00.002) 以上的一般用途伺服器。 - 韌體版本為
3.50.58以上的記憶體最佳化伺服器。
開始前,請務必將伺服器升級至最新韌體。請參閱事前準備一節。
系統可能會強制中斷超過 30 天的互動式序列主控台連線。
本文說明如何在伺服器上啟用及停用互動式序列主控台存取權。
事前準備
啟用 Bare Metal Solution API。請參閱設定 Google Cloud 專案以使用 Bare Metal Solution API。
授予使用者適當的 Identity and Access Management (IAM) 角色。 如要執行本文中的所有工作,您必須具備下列任一角色:
roles/baremetalsolution.adminroles/baremetalsolution.editor
確認韌體版本符合需求:
- 一般用途伺服器:
TS54(43.45.00.002) 以上版本。 - 記憶體最佳化伺服器:
3.50.58以上版本。
步驟如下:
在 Bare Metal 解決方案伺服器上,執行下列指令:
sudo dmidecode -s bios-version
如果成功,輸出內容會顯示必要 BIOS 版本或更高版本。舉例來說,如果是通用伺服器,輸出內容會顯示 BIOS 版本為
43.45.00.002以上:Version: BIOS_PUR043.45.00.002
如果 BIOS 版本低於必要韌體,請升級伺服器的韌體。如需升級協助,請與客戶服務團隊聯絡。
- 一般用途伺服器:
如果您的 Bare Metal 解決方案伺服器是在 2022 年 6 月前佈建,核心啟動參數可能缺少互動式序列主控台所需的設定。反之,如果是在 2022 年 6 月後佈建,則必要設定可能已整合至 OS 映像檔。不過,OS 修補或企業專屬政策強制執行作業,可能會變更預設核心啟動參數。無論如何,建議您確認互動式序列主控台所需的 OS 設定是否可用。
如要確保作業系統具備互動式序列主控台的必要設定,請按照下列步驟操作:
- 在
/etc/default目錄中找出 GRand Unified Bootloader (GRUB) 設定檔。 確認 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 設定檔存取序列埠主控台。
如果 GRUB 設定檔沒有這些設定,請手動新增。
執行
grub-mkconfig指令來處理變更。詳情請參閱 GRUB 說明文件。重新啟動伺服器。
- 在
啟用互動式序列主控台存取權
如要啟用及存取互動式序列主控台,請按照下列步驟操作:
啟用互動式序列主控台存取權
使用互動式序列控制台前,請務必先在伺服器上啟用存取權。
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 金鑰通關密語。視需要按下 Enter 或 Return 鍵,即可存取互動式序列主控台。
中斷與互動式序列主控台的連線
如要中斷與序列埠主控台的連線,請按照下列步驟操作:
- 按下
ENTER或RETURN鍵。 - 輸入
~.(波浪號後面加上句號)。
管理安全殼層金鑰
系統會根據個別專案儲存 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:伺服器名稱。