# 批量绑定SSH密钥对 - BatchAssociateKeypair
#### 功能介绍
给指定的虚拟机批量绑定新的SSH密钥对
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-dew/dew_02_0002.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-dew/dew_02_0308.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                 | 访问级别  | 资源类型（\*为必须）   | 条件键 | 别名                      | 依赖的授权项                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
  |:---|:---|:---|:---|:---|:---|
  | kps:SSHKeyPair:bind | Write | SSHKeyPair \* | -   | kps:domainKeypairs:bind | - ecs:cloudServers:createServers  - ecs:cloudServers:deleteServers  - ecs:cloudServers:showServer  - ecs:cloudServers:attach  - ecs:cloudServers:listServerBlockDevices  - ecs:cloudServers:showServerBlockDevice  - ecs:cloudServers:detachVolume  - ecs:cloudServers:listServerInterfaces  - ecs:cloudServers:listServersDetails  - ecs:cloudServerFlavors:get  - ecs:cloudServerQuotas:get  - evs:types:get  - evs:volumes:use  - ims:images:get  - vpc:subnets:list   |
     
  
 
#### URI
POST /v3/{project_id}/keypairs/batch-associate
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释：** 项目ID。可参考[获取项目ID](https://support.huaweicloud.com/api-dew/dew_02_0009.html)获取。 **约束限制：** 不涉及 **取值范围：** 以IAM服务接口返回值为准，字符长度32-32 **默认取值：** 不涉及 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token。通过调用IAM服务查询用户Token接口获取（响应消息头中X-Subject-Token的值） **约束限制：** 不涉及 **取值范围：** IAM服务查询用户Token接口为准 **默认取值：** 不涉及 |
   
表3请求Body参数 
| 参数             | 是否必选 | 参数类型                                                                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| batch_keypairs | 是    | Array of [AssociateKeypairRequestBody] objects | **参数解释：** 待绑定的密钥对列表 **约束限制：** - 最多可同时选择10个弹性云服务器绑定密钥对   - 只支持选择相同的密钥对，弹性云服务器处于"运行中"状态，并未绑定密钥对    **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表4AssociateKeypairRequestBody 
| 参数           | 是否必选 | 参数类型                                                                  | 描述                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| keypair_name | 是    | String                                                                | **参数解释：** SSH密钥对名称 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及      |
| server       | 是    | [EcsServerInfo] object | **参数解释：** 需要绑定密钥对的虚拟机信息 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表5EcsServerInfo 
| 参数               | 是否必选 | 参数类型                                                | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| id               | 是    | String                                              | **参数解释：** 需要绑定(替换或重置)SSH密钥对的虚拟机id **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                    |
| auth             | 否    | [Auth] object | **参数解释：** 虚拟机鉴权认证类型信息 **约束限制：** 可选字段，替换时需要该参数，重置时不需要该参数 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                            |
| disable_password | 否    | Boolean                                             | **参数解释：** 是否禁用虚拟机ssh登录 **约束限制：** - true：禁用虚拟机的ssh登录   - false：不禁用虚拟机的ssh登录    **取值范围：** true或false **默认取值：** false |
| port             | 否    | Long                                                | **参数解释：** 虚拟机SSH监听端口 **约束限制：** 不涉及 **取值范围：** 0-65535 **默认取值：** 22                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
 表6Auth 
| 参数   | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| type | 否    | String | **参数解释：** 虚拟机鉴权认证类型 **约束限制：** - password: 虚拟机为密码鉴权   - keypair: 虚拟机为密钥对鉴权    **取值范围：** 不涉及 **默认取值：** 不涉及            |
| key  | 否    | String | **参数解释：** 虚拟机鉴权密钥 **约束限制：** - type为枚举值password时，key表示密码   - type为枚举值keypair时，key表示私钥    **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
#### 响应参数
**状态码：202**
表7响应Body参数 
| 参数    | 参数类型                                                                                   | 描述                                                                                                                                                             |
|:---|:---|:---|
| tasks | Array of [TaskResponseBody] objects | **参数解释：** 批量绑定密钥对任务列表 **取值范围：** 不涉及 |
   
 表8TaskResponseBody 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| task_id    | String | **参数解释：** 任务下发成功返回的任务ID **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                           |
| server_id  | String | **参数解释：** 绑定的虚拟机id **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                |
| status     | String | **参数解释：** 任务下发的状态 **取值范围：** - SUCCESS: 任务下发成功   - FAILED: 任务下发失败    |
| error_code | String | **参数解释：** 任务下发失败返回的错误码 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                            |
| error_msg  | String | **参数解释：** 任务下发失败返回的错误描述 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                           |
   
#### 请求示例
```
{
  "batch_keypairs" : [ {
    "keypair_name" : "1",
    "server" : {
      "id" : "fxxx16e3-74b8-4025-9852-1f451932c20c",
      "disable_password" : false,
      "auth" : {
        "type" : "password",
        "key" : "password"
      }
    }
  }, {
    "keypair_name" : "1",
    "server" : {
      "id" : "4xxxxfc4-b4bf-49c2-b983-a1811c9760c1",
      "disable_password" : false,
      "auth" : {
        "type" : "password",
        "key" : "password"
      }
    }
  } ]
}
```
#### 响应示例
**状态码：202**
请求已成功
```
{
  "tasks" : [ {
    "server_id" : "xxx",
    "task_id" : "xxx",
    "status" : "SUCCESS"
  }, {
    "server_id" : "xxx",
    "status" : "FAILED",
    "error_code" : "xxxx",
    "error_msg" : "xxxx"
  } ]
}
```
#### 状态码
| 状态码 | 描述    |
|:---|:---|
| 202 | 请求已成功 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-dew/ErrorCode.html)。
