使用 SSH 连接到 Windows 虚拟机


本文档介绍了如何使用 SSH 连接到 Windows 虚拟机 (VM) 实例。如需了解连接到 Windows 虚拟机的其他方法,请参阅使用 RDP 连接到 Windows 虚拟机使用 PowerShell 连接到 Windows 虚拟机。如需了解 SSH 在 Compute Engine 中的工作原理,请参阅 SSH 连接简介

准备工作

  • 如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以选择以下任一选项向 Compute Engine 进行身份验证:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.

支持的图片

运行客机代理 (GCEGuestAgent) 版本 20220527.00 或更高版本和 OpenSSH 版本 8.6 或更高版本的 Windows Server 映像支持适用于 Windows 的 SSH。

为 Windows 虚拟机启用 SSH

如需启用与 Windows 虚拟机的 SSH 连接,请安装 google-compute-engine-ssh 软件包并在项目或实例元数据中将 enable-windows-ssh 密钥设置为 TRUE。如果在项目元数据中启用适用于 Windows 的 SSH,则会为项目中的所有 Windows 虚拟机启用 SSH。如果在实例元数据中启用适用于 Windows 的 SSH,则会为单个虚拟机启用 SSH 并替换项目元数据中设置的值。

在创建虚拟机时启用适用于 Windows 的 SSH

使用 Google Cloud 控制台或 Google Cloud CLI 创建虚拟机时启用适用于 Windows 的 SSH。

控制台

通过公共映像创建虚拟机,以安装 google-compute-engine-ssh 软件包并在启动时启用 SSH:

  1. 指定以下启动磁盘属性:

    • 操作系统:Windows Server
    • 版本:任何版本
  2. 高级选项部分中,展开管理部分。

  3. 元数据部分,点击添加项。 通过输入以下元数据键值对,添加安装 google-compute-engine-ssh 软件包的启动脚本:

    • sysprep-specialize-script-cmd
    • googet -noconfirm=true install google-compute-engine-ssh
  4. 元数据部分,点击添加项。 通过输入以下元数据键值对,将 enable-windows-ssh 设置为 TRUE

    • enable-windows-ssh
    • TRUE
  5. 点击创建以创建并启动虚拟机。

gcloud

运行以下 gcloud compute instances create 命令,创建 Windows Server 虚拟机以安装 google-compute-engine-ssh 软件包并在启动时启用 SSH:

gcloud compute instances create VM_NAME \
    --image-family=IMAGE_FAMILY \
    --image-project=windows-cloud \
    --metadata sysprep-specialize-script-cmd="googet -noconfirm=true install google-compute-engine-ssh",enable-windows-ssh=TRUE

请替换以下内容:

  • VM_NAME:新虚拟机的名称。
  • IMAGE_FAMILYWindows Server 映像系列。此项表示通过最新的未弃用的 Windows Server 映像创建虚拟机。

在运行中的虚拟机上启用适用于 Windows 的 SSH

如需在正在运行的 Windows 虚拟机上启用 SSH,请执行以下操作之一,具体取决于您是可以使用 RDP 访问虚拟机,还是您的工作负载可以容忍重新启动:

  • 需要 RDP 访问权限:使用 RDP 连接到虚拟机并安装 SSH 软件包
  • 需要重新启动:使用启动脚本安装 SSH 软件包

RDP

如果您可以使用 RDP 访问虚拟机,请执行以下操作以启用 SSH:

  1. 使用 RDP 连接到虚拟机

  2. 通过执行以下操作打开管理员命令提示符会话:

    1. 打开开始菜单。

    2. 转到命令提示符

    3. 右键点击命令提示符,然后选择以管理员身份运行

      如果系统提示您允许命令提示符更改设备,请选择

  3. 通过运行以下命令下载并安装 google-compute-engine-ssh 软件包:

    googet -noconfirm=true install google-compute-engine-windows && googet -noconfirm=true install google-compute-engine-ssh
    
  4. 关闭 RDP 会话。

  5. 通过将 enable-windows-ssh 密钥设置为 TRUE,在元数据中启用 Windows SSH。如需详细了解如何设置元数据,请参阅设置自定义元数据

启动脚本

如果您无法使用 RDP 访问虚拟机,请执行以下操作以启用 SSH:

  1. 停止虚拟机

  2. 在虚拟机上设置以下元数据键值对以启用 SSH。如需详细了解如何设置元数据,请参阅设置自定义元数据

    • SSH 软件包安装元数据:

      • windows-startup-script-cmd
      • googet -noconfirm=true update && googet -noconfirm=true install google-compute-engine-ssh
    • SSH 启用元数据:

      • enable-windows-ssh
      • TRUE
  3. 启动虚拟机。 虚拟机可能需要几分钟时间才能重新启动。

使用 SSH 连接到虚拟机

使用 gcloud compute ssh 命令连接到虚拟机:

gcloud compute ssh VM_NAME

VM_NAME 替换为要连接到的 Windows 虚拟机的名称。

连接到使用 AD 的虚拟机

如果您要连接到的虚拟机使用 Active Directory (AD),请使用以下命令进行连接:

gcloud compute ssh DOMAIN\USERNAME@VM_NAME

替换以下内容:

  • DOMAIN:您的 AD 域。例如,ad.example.com AD 的网域为 example
  • USERNAME:您的 AD 用户名。例如 cloudysanfrancisco
  • VM_NAME:要连接到的 Windows 虚拟机的名称。

后续步骤