将文件传输到实例

您可以使用不同的方式将文件传输到 Compute Engine 实例,具体取决于您的工作站操作系统和目标实例操作系统。

从以下操作系统传输 目标 Linux 实例 目标 Windows 实例
Linux 或 macOS
Windows

将文件传输到 Linux 和 Windows 实例

您可以使用 Cloud Storage 在所有操作系统之间传输文件。

通过 Cloud Storage 传输文件

无论使用哪种操作系统,您都可以将 Google Cloud Storage 存储分区用作您与实例之间的便捷中间传输点。

只要您的实例可通过服务帐号或通过您的个人用户凭据访问您的 Cloud Storage 存储分区,那么这种文件传输方法就几乎适用于所有操作系统和实例类型。

将您的文件从工作站上传到 Cloud Storage 存储分区。然后,从存储分区将这些文件下载到您的实例。

  1. 创建新的 Cloud Storage 存储分区或标识您要用于传输文件的现有存储分区。

  2. 在工作站上,将文件上传到存储分区。

  3. 通过 SSH 或 RDP 连接您的实例:

  4. 在您的实例中,从存储分区中下载文件

如果您需要以相反方向传输文件,请以倒序执行该过程。您可以从您的实例上传文件,然后将这些文件下载到您的工作站。

将文件传输到 Linux 实例

在浏览器中使用 SSH 传输文件

如果您可以使用“通过浏览器发起 SSH 连接”(SSH from the Browser) 窗口与实例建立 SSH 连接,则可以使用该连接将文件传输到该实例。

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

    转到“虚拟机实例”页面

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

  3. 建立连接后,点击“通过浏览器发起 SSH 连接”(SSH from the Browser) 窗口右上角的齿轮图标,然后选择“上传文件”,或者,选择“下载文件”以从实例下载文件。
  4. 系统会打开传输对话窗口。请指定要传输的文件。

如果您上传了文件,则该文件位于用户的 /home 目录中。如果您下载了文件,则该文件位于本地工作站上的默认下载文件夹中。

使用 gcloud 命令行工具传输文件

gcloud 命令行工具提供了一个 SCP 文件传输实用工具,可在您首次连接时为您创建 SSH 密钥对。您的私钥存储在本地设备上,而其相应的公钥将被复制到项目或实例元数据中。

如需使用 SCP 传输文件,您必须在实例使用的网络上启用防火墙规则,用于允许在端口 22 上建立 SSH 连接。如需了解如何设置所需的防火墙规则以允许建立这些连接,请参阅使用防火墙规则

您可以安装 gcloud 工具,然后通过该工具使用 scp 命令将文件和目录复制到您的实例。

以下示例命令可将文件从工作站复制到实例的主目录。

gcloud compute scp [LOCAL_FILE_PATH] [INSTANCE_NAME]:~

其中:

  • [LOCAL_FILE_PATH] 是指向工作站上文件的路径。
  • [INSTANCE_NAME] 是您实例的名称。

您还可以将文件和目录从实例复制到本地工作站。以下示例展示了如何以递归方式将目录从实例(源)复制到本地工作站(目标)。

gcloud compute scp --recurse [INSTANCE_NAME]:[REMOTE_DIR] [LOCAL_DIR]

其中:

  • [INSTANCE_NAME] 是实例的名称。
  • [REMOTE_DIR] 是指向实例上目录的路径。
  • [LOCAL_DIR] 是工作站中您要放置目录的路径。

如需了解详情,请参阅 gcloud compute scp 参考文档。

在 Linux 和 MacOS 工作站上使用 SCP 传输文件

SCP 命令行工具的工作方式类似于 gcloud compute scp,但需要您手动管理 SSH 密钥

如需使用 SCP 传输文件,您必须在实例使用的网络上启用防火墙规则,用于允许在端口 22 上建立 SSH 连接。如需了解如何设置所需的防火墙规则以允许建立这些连接,请参阅使用防火墙规则

scp 工具使用的密钥文件与您用于使用标准 SSH 连接实例的密钥文件相同。

  1. 如果您尚未将公钥应用于您的 GCP Console 项目或实例,请获取 SSH 密钥对并将公共 SSH 密钥文件应用于您的项目或实例。

  2. 查找您要向其发送文件的实例的外部 IP。在浏览器中,转到您的实例列表。

    转到实例页面

  3. 使用 scp 工具将文件从您的工作站复制到目标实例上的主目录。在此示例中,私钥位于 ~/.ssh/my-ssh-key

    scp -i ~/.ssh/my-ssh-key [LOCAL_FILE_PATH] [USERNAME]@[IP_ADDRESS]:~
    

    其中:

    • [USERNAME] 是您的用户名。
    • [LOCAL_FILE_PATH] 是您要上传的本地文件的名称。
    • [IP_ADDRESS] 是您的实例的 IP 地址。

通过颠倒源变量和目标变量的顺序,您还可以将文件从实例复制到本地工作站。在此示例中,您可以将文件从实例复制到工作站上的路径。

scp -i ~/.ssh/my-ssh-key [USERNAME]@[IP_ADDRESS]:[REMOTE_FILE_PATH] [LOCAL_FILE_PATH]

其中:

  • [USERNAME] 是您的用户名。
  • [REMOTE_FILE_PATH] 是您要下载的远程文件的名称。
  • [IP_ADDRESS] 是您的实例的 IP 地址。
  • [LOCAL_FILE_PATH] 是工作站中您要下载文件的位置。

在 Windows 工作站上使用 WinSCP 传输文件

在 Windows 工作站上,您可以使用 WinSCP 客户端通过图形文件浏览器界面管理实例上的文件。

WinSCP 使用的密钥文件与您用于使用 PuTTY 连接实例的密钥文件相同。

  1. 如果您尚未将公钥应用于您的 GCP Console 项目或实例,请获取 SSH 密钥对并将公共 SSH 密钥文件应用于您的项目或实例。

  2. 下载并安装 WinSCP。对于大多数用户,使用默认安装设置即可。

  3. 启动 WinSCP 程序。此时系统会打开一个登录窗口,您可以在其中配置您的连接设置。

  4. 查找您要向其发送文件的实例的外部 IP。在浏览器中,转到您的实例列表

  5. 在 WinSCP 中,配置您的连接设置。

    1. 文件协议字段设置为 SCP

    2. 主机名字段中,指定要连接的实例的外部 IP 地址。

    3. 用户名字段中,指定用于访问项目的 Google 用户名。对于此示例,用户是 example-user

      将文件协议设置为 SCP,将主机名称设置为 104.196.31.103,将用户名设置为 example-user。

  6. 点击高级下拉菜单以打开高级设置,然后依次转到 SSH > 身份验证

  7. 私钥文件字段下,指定指向私钥文件的路径。对于此示例,密钥文件是 my-ssh-key.ppk

    在“高级站点设置”中,将私钥文件设置为 my-ssh-key.ppk。

  8. 点击确定以保存高级设置。

  9. 点击登录连接您的实例。如果连接成功,系统会打开一个窗口,窗口左侧显示本地文件系统,右侧显示实例的文件系统。您可以转到这些文件系统中的不同目录,然后拖动文件,以将这些文件传输到实例或从实例中传输这些文件。

  10. 您可能无权管理实例上您的主目录以外的大多数文件。请将目录更改为用户的主目录。在 WinSCP 的路径字段中,输入您的主目录。

    /home/[USERNAME]
    

    其中 [USERNAME] 是您在该实例上的用户名。

  11. 使用 WinSCP 接口在您的工作站和实例之间移动文件。

  12. 将文件复制到实例后,连接您的实例,以便您使用完整的 sudo 权限执行或移动文件。

将文件传输到 Windows 实例

通过 Windows RDP 客户端传输文件

通过桌面设备 RDP 客户端,您可以将本地设备和资源(包括本地驱动器)从工作站连接到您连接的 Windows Server 实例。通过 RDP 进行连接时,上述方法可以使本地工作站文件系统用作远程资源。请注意,如果您将 GCP Console 与 Chrome RDP 扩展程序搭配使用,则无法使用上述方法。

例如,在 Windows 2016 工作站上:

  1. 打开 RDP。
  2. 点击本地资源标签。
  3. 本地设备和资源下方,点击更多
  4. 选择硬盘复选框。当您打开与远程实例的连接时,可通过 Windows 资源管理器访问您选定的本地硬盘。

如需了解详情,请参阅 Microsoft 远程桌面客户端

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档