配置交互式串行控制台

裸金属解决方案提供交互式串行控制台,可用于访问您的 裸金属解决方案服务器。您可以直接运行命令并响应提示 。您可以使用串行控制台执行配置 和问题排查任务裸金属解决方案服务器使用第一个串行端口 (端口 1)用作串行控制台。

只有以下服务器支持交互式串行控制台:

  • 具有 TS54 (43.45.00.002) 或 更高的固件版本。
  • 固件版本为 3.50.58 或更高版本的内存优化服务器。

请务必在开始之前将服务器升级到最新固件。请参阅准备工作

存在时间超过 30 天的交互式串行控制台连接 强制断开连接

本文档介绍了如何在服务器上启用和停用交互式串行控制台访问权限。

准备工作

  1. 启用 Bare Metal Solution API。请参阅通过设置 Google Cloud 项目 使用 Bare Metal 解决方案 API

  2. 向用户授予适当的 Identity and Access Management (IAM) 角色。 要执行本文档中的所有任务,您必须满足以下任一条件: 角色:

    • roles/baremetalsolution.admin
    • roles/baremetalsolution.editor
  3. 验证您是否拥有所需固件版本:

    • 对于通用服务器,请使用 TS54 (43.45.00.002) 或更高版本。
    • 对于内存优化服务器,应使用 3.50.58 或更高版本。

    请按照以下步骤操作:

    1. 在裸金属解决方案服务器上,运行以下命令:

      sudo dmidecode -s bios-version
      

      如果成功,输出会显示所需的 BIOS 版本或更高版本。对于 如果是通用服务器,则输出会显示 43.45.00.002 或更高版本:

      Version: BIOS_PUR043.45.00.002
      
    2. 如果 BIOS 版本低于所需的固件,请升级 。如需升级方面的帮助,请与客户服务团队联系。

  4. 如果您的裸金属解决方案服务器是在 2022 年 6 月之前预配的,则内核启动参数可能缺少交互式串行控制台所需的配置。反之,如果是在 2022 年 6 月之后预配的,则所需的配置可能已集成到您的操作系统映像中。不过,操作系统修补或 特定于企业的政策实施可能更改了默认内核 启动参数。无论如何,我们都建议您验证交互式串行控制台所需的操作系统配置是否可用。

    为了确保您的操作系统具备交互式 串行控制台,请按以下步骤操作:

    1. 在 Android Studio 文件中找到 GRand Unified Bootloader (GRUB) 配置文件, /etc/default 目录中。
    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. 注册 SSH 密钥
  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 密钥对,以验证您对串行控制台的访问。此操作只需要针对每个项目执行一次。

从跳转主机虚拟机实例或其他实例运行 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 密钥

如需对您对串行控制台的访问进行身份验证,请在项目中注册 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:用于生成的 SSH 密钥文件的根名称 公钥和私钥
  • 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 访问交互式串行控制台。运行以下命令:

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

请替换以下内容:

  • SSH_KEY_ID:用于生成的 SSH 密钥文件的根名称 公钥和私钥
  • PROJECT_ID:您的项目 ID。
  • REGION:服务器所在的区域。
  • SERVER_NAME:服务器的名称。
  • USERNAME:您用于访问裸金属解决方案的用户名 通过串行控制台连接到服务器

出现提示时,输入您之前配置的 SSH 密钥密码。如有需要 按 EnterReturn 键即可访问交互式序列 控制台。

与交互式串行控制台断开连接

要断开与串行控制台的连接,请按以下步骤操作:

  1. ENTERRETURN 键。
  2. 输入 ~.(即依次输入波浪号和英文句点)。

对于裸金属解决方案上的 SAP HANA,请使用 CTRL + ] q 断开与交互式串行控制台的连接。

管理 SSH 密钥

SSH 密钥按项目进行存储。您可以在以下位置管理 SSH 密钥: 方法:

列出 SSH 密钥

您可以列出在项目中注册的 SSH 公钥。

gcloud

如需列出 SSH 公钥,请运行 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 密钥

您可以从项目的已授权密钥列表中删除 SSH 密钥。

gcloud

要删除 SSH 公钥,请运行 gcloud bms ssh-keys remove 命令。

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

请替换以下内容:

  • SSH_KEY_ID:用于生成的 SSH 密钥文件的根名称 公钥和私钥
  • PROJECT_ID:您的项目 ID。

API

要删除 SSH 公钥,请输入您的项目 ID 和 SSH 密钥 ID,然后发出 执行以下命令。

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:用于生成的 SSH 密钥文件的根名称 公钥和私钥

停用交互式串行控制台访问权限

请按照以下说明停用交互式串行控制台访问权限 运行容器

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:服务器的名称。