更新 SFTP 用户的 SSH 密钥

本文档介绍了如何更新 Cloud FTP 用户可用于连接到 SFTP 服务器的 Secure Shell (SSH) 密钥。

准备工作

  • 从用户将用于连接到服务器的每个 SSH 密钥对中获取用户的公钥。一个用户最多可以有 10 个公钥。

    如果用户没有 SSH 密钥对,请按照以下步骤生成一个。

    生成 SSH 密钥对

    如需生成 SSH 密钥对,请使用 ssh-keygen 实用程序。在将连接到 SFTP 服务器的客户端机器上,运行以下命令:

    ssh-keygen -t rsa -b 4096 -f ~/.ssh/KEY_PAIR_NAME

    KEY_PAIR_NAME 替换为密钥对的名称,例如 sftp_user_key

    公钥已保存到 ~/.ssh/KEY_PAIR_NAME.pub 文件中。

所需的角色

如需获得更新 SFTP 用户所需的权限,请让您的管理员为您授予项目的 FTP Admin (roles/ftp.admin) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含更新 SFTP 用户所需的 ftp.users.update 权限。

您也可以使用自定义角色或其他预定义角色来获取此权限。

更新 SFTP 用户的 SSH 密钥

REST

如需更新 SFTP 用户的 SSH 密钥,请使用 servers.users.patch 方法。在 updateMask 查询参数中,提供 userCredentials 字段。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:服务器的 Google Cloud 项目 ID。
  • LOCATION_ID:服务器的位置,例如 us-west1
  • SERVER_ID:服务器 ID。
  • USERNAME:SFTP 用户的用户名。
  • CREDENTIAL_NAME:用于标识用户凭据的唯一名称。
  • SSH_PUBLIC_KEY:用户的 SSH 公钥正文,采用 OpenSSH 格式。例如 ssh-rsa AAAAB3NzaC1ycRexample...

如需为用户配置多个公钥,请在 userCredentials 列表中提供多个凭据。

HTTP 方法和网址:

PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID/users/USERNAME?updateMask=userCredentials

请求 JSON 正文:

{
  "userCredentials": [
    {
      "credentialName": "CREDENTIAL_NAME",
      "credentialType": "PUBLIC_KEY",
      "sshPublicKeyBody": "SSH_PUBLIC_KEY"
    }
  ]
}

如需发送您的请求,请展开以下选项之一:

该响应用于标识长时间运行的操作。更新用户需要几秒钟的时间。