本文档介绍了如何更新 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"
}
]
}
如需发送您的请求,请展开以下选项之一:
该响应用于标识长时间运行的操作。更新用户需要几秒钟的时间。