設定互動式序列主控台
Bare Metal 解決方案提供互動式序列主控台,可用於存取 Bare Metal 解決方案伺服器。您可以在序列主控台中直接執行指令並回應提示。您可以使用序列主控台執行設定和疑難排解工作。Bare Metal 解決方案伺服器會使用第一個序列埠 (序列埠 1) 做為序列主控台。
互動式序列主控台僅支援下列伺服器:
- 搭載
TS54
(43.45.00.002
) 以上韌體版本的通用伺服器。 - 記憶體最佳化伺服器,韌體版本為
3.50.58
以上。
請務必先將伺服器升級至最新韌體,再開始進行。請參閱事前準備一節。
超過 30 天的互動式序列主控台連線可能會遭到強制中斷。
本文件說明如何在伺服器上啟用及停用互動式序列主控台存取權。
事前準備
啟用 Bare Metal Solution API。請參閱「設定 Google Cloud 專案以使用 Bare Metal Solution API」。
授予使用者適當的身分與存取權管理 (IAM) 角色。如要執行本文件中的所有工作,您必須具備下列其中一個角色:
roles/baremetalsolution.admin
roles/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) 金鑰組
產生安全殼層金鑰組,驗證您對序列控制台的存取權。每個專案只需執行這項操作一次。
從跳躍主機 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 金鑰密碼。視需要按下 Enter
或 Return
鍵,即可存取互動式序列主控台。
中斷與互動式序列主控台的連線
如要中斷與序列主控台的連線,請按照下列步驟操作:
- 按下
ENTER
或RETURN
鍵。 - 輸入
~.
(波浪號後面加上句號)。
針對 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:伺服器名稱。