连接到实例


本文档介绍了连接到 Compute Engine 上运行的 Linux 实例Windows 实例的一些基本方法。

如需了解连接到实例的高级方法(例如使用第三方工具,包括 PuTTY),请参阅使用高级方法连接到实例

准备工作

如果您要使用本文档中的命令行示例,请执行以下操作:

  1. 安装或更新为 gcloud 命令行工具的最新版本。
  2. 设置默认区域和地区

连接到 Linux 实例

在连接之前,请查看以下说明:

  • 您的虚拟机实例允许 SSH 访问。默认情况下,Compute Engine 会创建允许通过端口 22 建立 TCP 连接的防火墙规则。您可以通过以下方式来验证这些防火墙规则是否存在:访问 Cloud Console 中的防火墙规则页面,然后查找允许 tcp:22 连接的防火墙规则。

  • (可选)为了进一步提高安全性,您可以将主机密钥存储为 Linux 实例上的客机特性 (Attribute)。如需了解详情,请参阅通过启用客机特性存储主机密钥

如需通过 Google Cloud Console 或 gcloud 命令行工具连接到 Linux 实例,请完成以下标签页之一中的步骤。

控制台

  1. 在 Cloud Console 中,转到虚拟机实例页面。

    转到“虚拟机实例”

  2. 在虚拟机实例列表中,点击要连接的实例所在行中的 SSH

    实例名称旁边的 SSH 按钮。

gcloud

使用 gcloud compute ssh 命令连接到您有权访问的实例。

gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

替换以下内容:

  • PROJECT_ID:包含实例的项目的 ID。
  • ZONE:实例所在地区的名称。
  • VM_NAME:实例的名称

如果您已为 gcloud 命令行工具设置默认属性,则可以省略此命令中的 --project--zone 标志。例如:

gcloud compute ssh VM_NAME

连接后,请使用终端在 Linux 实例上运行命令。完成后,请使用 exit 命令断开与实例的连接。

SSH 密钥的存储位置

首次连接到虚拟机实例时,Compute Engine 会为您生成 SSH 密钥对,并将其存储在以下位置之一:

  • 默认情况下,Compute Engine 会将生成的密钥对添加到项目元数据或实例元数据中。
  • 如果您的帐号配置为使用 OS Login,Compute Engine 会将生成的密钥对与您的用户帐号一起存储。

如果您按照本文档中所述的方法进行连接,则无需知道 SSH 密钥对的存储位置;但是,如果您要使用高级方法进行连接,则可能需要知道 SSH 密钥对的存储位置。

连接到 Windows 实例

在连接之前,请查看以下说明:

  • 您的虚拟机实例允许 RDP 访问。默认情况下,Compute Engine 会创建允许通过 TCP 端口 3389 进行 RDP 访问的防火墙规则。您可以通过以下方式来验证这些防火墙规则是否存在:访问 Cloud Console 中的防火墙规则页面,然后查找允许 tcp:3389 连接的防火墙规则。

Compute Engine 支持通过多种方式连接到 Windows 实例。

连接到 Windows 实例

远程桌面

连接到 Windows 实例的远程桌面的最佳方法取决于多种因素:

  • 如果您要通过公共互联网从任何位置(上图中的“连接来源”>“任何位置”)进行连接,则最好为项目启用 Identity-Aware Proxy TCP 转接。然后,将 IAP 桌面(在 Windows 上)或 gcloud 命令行工具与原生 RDP 客户端搭配使用,以连接到 Windows 实例。如果您无法使用 Identity-Aware Proxy TCP 转接,请使用 Chrome 远程桌面
  • 如果虚拟机实例具有公共 IP 地址且防火墙规则允许 RDP 访问,请使用 Chrome RDP for Google Cloud 浏览器插件或任何原生 RDP 客户端,例如 Microsoft 远程桌面连接应用。
  • 如果虚拟机实例没有公共 IP 地址,并且您使用 Cloud VPN 或 Cloud Interconnect 进行连接,则可以使用原生 RDP 客户端(如 Microsoft 远程桌面连接应用)连接到虚拟机的专用 IP 地址。

如果您在使用 RDP 建立连接时遇到问题,请参阅排查 RDP 问题。如果您无法使用远程桌面连接到 Windows 实例,请参阅本文档中的 Special Administrative Console (SAC)

如需连接到 Windows 实例的远程桌面,请按照以下过程之一操作。

IAP 桌面

IAP 桌面是一个 Windows 应用,可让您管理 Windows 虚拟机实例的多个远程桌面连接。IAP 桌面使用 Identity-Aware Proxy TCP 转接连接到虚拟机实例,并且不需要虚拟机实例具有公共 IP 地址。

在使用 IAP 桌面进行连接之前,请确保满足以下前提条件:

要使用 IAP 桌面连接到虚拟机实例,请执行以下操作:

  1. 在 IAP 桌面中,选择文件 > 添加 Google Cloud 项目

  2. 输入项目的 ID 或名称,然后点击确定

  3. Project Explorer 窗口中,右键点击要连接的虚拟机实例,然后选择连接

    IAP 桌面。

如需详细了解 IAP 桌面,请参阅 GitHub 项目页面

远程桌面连接应用

您可以使用属于 Windows 的 Microsoft 远程桌面连接应用连接到 Windows 实例。

在使用 Microsoft 远程桌面连接应用进行连接之前,请确保满足以下前提条件之一:

  • 您的虚拟机实例具有公共 IP 地址,并且您的防火墙规则允许 TCP 入站流量使用端口 3389 从您客户端的公共 IP 地址流向该实例。
  • 您的本地网络已通过 Cloud VPNCloud Interconnect 连接到您的 VPC,并且您的防火墙规则允许来自客户端专用 IP 地址的 TCP 入站流量使用端口 3389 进入实例。

如需通过 Microsoft Windows 远程桌面进行连接,请执行以下操作:

  1. 如果您还没有 Windows 帐号,请创建 Windows 帐号和密码

  2. 如需通过互联网进行连接,请使用外部 IP 地址。如需使用 Cloud VPN 或 Cloud Interconnect 进行连接,请使用内部 IP 地址。

    通过完成以下步骤之一确定 Windows 实例的外部和内部 IP 地址:

    • 在 Google Cloud Console 中,转到虚拟机实例页面。

      转到“虚拟机实例”页面

    • 使用 gcloud 工具运行 gcloud compute instances list

      gcloud compute instances list
  3. 在 Windows 机器上打开 Microsoft Windows 远程桌面连接。您可以通过以下路径和文件名找到该可执行文件:%systemroot%\system32\mstsc.exe

    “远程桌面连接”对话框。

  4. 计算机框中,输入 IP 地址。

    如果您已对实例进行配置,使其为 RDP 使用其他端口号,请将相应端口号添加到 IP 地址之后,例如:1.2.3.4:3389

  5. 点击连接

  6. 输入您的用户名和密码,然后点击确定

    如果您忘记了密码,可以重置密码

Chrome 远程桌面

Chrome 远程桌面服务可让您使用网络浏览器远程访问其他计算机。 Chrome 远程桌面可在 Windows、macOS 和 Linux 上运行,并且不需要虚拟机实例具有公共 IP 地址。

在使用 Chrome 远程桌面进行连接之前,请确保满足以下前提条件:

要使用 Chrome 远程桌面连接到虚拟机实例,请执行以下操作:

  1. 在本地计算机上,转到 Chrome 远程桌面网站。

  2. 如果您尚未登录 Google,请使用您用于设置 Chrome 远程桌面服务的同一 Google 帐号进行登录。

  3. 选择要连接的实例。

  4. 出现提示时,输入您在安装 Chrome 远程桌面服务时创建的 PIN 码,然后点击 箭头按钮进行连接。

Chrome RDP 插件

Chrome RDP for Google Cloud 是一款第三方插件,可让您使用 Chrome 浏览器连接到 Windows 实例。该插件已与Google Cloud Console集成。安装插件后,使用 Cloud Console 中的 RDP 按钮连接到任何 Windows Server 实例。

在使用 Chrome RDP for Google Cloud 进行连接之前,请确保满足以下前提条件:

  • 您的虚拟机实例具有公共 IP 地址。
  • 您的防火墙规则允许 TCP 入站流量使用端口 3389 从您客户端的公共 IP 地址流向该实例。
  • 您已安装 Chrome RDP for Google Cloud 扩展程序

  • 如果您要从 Chrome 操作系统连接到 Windows 虚拟机,请将 Chromebook 的显示大小 (Display Size) 设置为 100%

要使用 Chrome RDP 插件进行连接,请执行以下操作:

  1. 在 Cloud Console 中,转到虚拟机实例页面,找到要连接的 Windows 实例。

    转到“虚拟机实例”页面

  2. 点击您要连接到的实例的 RDP 按钮。Chrome RDP 扩展程序随即打开。

  3. 输入网域、用户名和密码,然后点击确定进行连接。

    实例创建窗口。

    如果实例没有配置网域,您可以将网域字段留空。

  4. 如果看到系统提示,请按继续接受证书。

其他

您可以使用其他 RDP 客户端(例如为 Android、iOS、Mac 等开发的客户端)连接到 Windows 虚拟机实例。 如需查看正式支持的客户端列表,请参阅 Microsoft 的远程桌面客户端文档。

在进行连接之前,请确保满足以下前提条件之一:

  • 您的虚拟机实例具有公共 IP 地址,并且您的防火墙规则允许 TCP 入站流量使用端口 3389 从您客户端的公共 IP 地址流向该实例。
  • 您的本地网络已通过 VPNCloud Interconnect 连接到您的 VPC,并且您的防火墙规则允许来自客户端专用 IP 地址的 TCP 入站流量使用端口 3389 进入实例。

如需使用其他 RDP 客户端进行连接,请执行以下操作:

  1. 如需通过互联网进行连接,请使用外部 IP 地址。如需使用 Cloud VPN 或 Cloud Interconnect 进行连接,请使用内部 IP 地址。

    通过完成以下步骤之一确定 Windows 实例的外部和内部 IP 地址:

    • 在 Google Cloud Console 中,转到虚拟机实例页面。

      转到“虚拟机实例”页面

    • 使用 gcloud 工具运行 gcloud compute instances list

      gcloud compute instances list
  2. 根据客户端的安装说明来安装支持的客户端。

  3. 使用您实例的 IP 地址进行连接,并使用您用于该实例的用户名和密码进行身份验证。

如需查看正式支持的客户端列表,请参阅 Microsoft 的远程桌面客户端文章。

如果您在使用 RDP 建立连接时遇到问题,请参阅 RDP 问题排查页面。 如需了解 RDP 许可,请参阅有关 Microsoft 许可的常见问题解答

Special Administrative Console

本部分介绍如何使用交互式串行控制台连接到 Windows 实例的 Windows Special Administrative Console (SAC)。如果您无法通过远程桌面连接到 Windows 实例,可以使用 SAC 进行问题排查。

在连接之前,请确保您已创建 Windows 实例密码,并且已准备好输入该密码。

如需使用交互式串行控制台连接到 Windows 实例,请完成以下任一标签页中的步骤:

控制台

  1. 在 Cloud Console 中,转到虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 点击您实例的名称。虚拟机实例详情页面随即打开。

  3. 点击修改。在远程访问下,选中允许连接到串行端口。此操作将为该实例启用交互式串行控制台。

    修改实例详情屏幕设置。

    如需详细了解如何更新实例元数据,请参阅存储和检索实例元数据

    如果您想要将这些设置应用于项目中的所有实例,请改为设置项目范围的自定义元数据

  4. 点击保存,然后返回页面顶部。

  5. 远程访问下,点击连接到串行控制台旁边的下拉列表,然后选择串行端口 2。SAC 随即打开。

  6. SAC> 提示符处,运行 cmd 以创建新通道。SAC 会返回通道名称,例如 Cmd001

  7. 运行 ch -sn CHANNEL_NAME,然后按任意键以连接到该通道。例如:

    SAC> cmd
    The Command Prompt session was successfully launched.
    SAC>
    EVENT:   A new channel has been created.  Use "ch -?" for channel help.
    Channel: Cmd0001
    SAC> ch -sn cmd0001
    Press any key to confirm connection to the channel.
  8. 输入实例的用户名、网域和密码进行连接。

gcloud

  1. 如果您尚未下载并安装适合您本地操作系统的 Cloud SDK,请下载并安装。

  2. 运行以下命令配置实例以启用到串行端口的连接:

    gcloud compute instances add-metadata VM_NAME \
       --zone=ZONE \
       --metadata=serial-port-enable=1

    替换以下内容:

    • VM_NAME:虚拟机实例的名称
    • ZONE:虚拟机实例所在的地区

    如需详细了解如何更新实例元数据,请参阅更新实例元数据

    可选:如果您想要将这些设置应用于项目中的所有实例,请改为运行以下 Cloud SDK 命令:

    gcloud compute project-info add-metadata \
        --metadata=serial-port-enable=1

    如需详细了解项目范围的自定义元数据,请参阅设置项目范围的自定义元数据

  3. 运行以下 gcloud 命令进入交互式会话:

    gcloud compute connect-to-serial-port VM_NAME \
        --port=2

    VM_NAME 替换为您的实例名称。

    SAC 交互式会话。

  4. SAC> 提示符处,运行 cmd 以创建新通道。SAC 会返回通道名称,例如 Cmd001

  5. 运行 ch -sn CHANNEL_NAME,然后按任意键以连接到该通道。例如:

    SAC> cmd
    The Command Prompt session was successfully launched.
    SAC>
    EVENT:   A new channel has been created.  Use "ch -?" for channel help.
    Channel: Cmd0001
    SAC> ch -sn cmd0001
    Press any key to confirm connection to the channel.
  6. 如需进行连接,请输入实例的用户名、网域和密码。

后续步骤