
# 创建和导入SSH密钥（OpenStack原生）
#### 功能介绍
创建SSH密钥，或把公钥导入系统，生成密钥对。
创建SSH密钥成功后，请把响应数据中的私钥内容保存到本地文件，用户使用该私钥登录裸金属服务器。为保证裸金属服务器安全，私钥数据只能读取一次，请妥善保管。
#### URI
POST /v2.1/{project_id}/os-keypairs
参数说明请参见[表1]。
 表1参数说明 
| 参数         | 是否必选 | 描述                                                                                                                       |
|:---|:---|:---|
| project_id | 是    | 项目ID。 获取方式请参见[获取项目ID](https://support.huaweicloud.com/api-bms/bms_api_appendix_03.html)。 |
   
#### 请求参数
![](https://support.huaweicloud.com/api-bms/public_sys-resources/note_3.0-zh-cn.png)
创建SSH密钥时，只需要提交SSH密钥的name属性。导入SSH密钥时，才需要提交public_key属性。
| 参数      | 是否必选 | 参数类型   | 描述                                                           |
|:---|:---|:---|:---|
| keypair | 是    | Object | 创建或导入的SSH密钥信息，详情请参见[表2]。 |
   
 表2keypair字段数据结构说明 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                     |
|:---|:---|:---|:---|
| public_key | 否    | String | 导入的公钥信息。导入公钥最大长度为1024字节。 注：长度超过1024字节会导致裸金属服务器注入该密钥失败。 |
| name       | 是    | String | 密钥名称。 新创建的密钥名称不能和已有密钥名称相同。                             |
   
#### 请求示例
创建和导入名称为keypair-7d7c3650-dabe-4eb0-b904-5c464453c043，公钥信息为ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\\n的SSH密钥。
```
POST https://{ECS Endpoint}/v2.1/bbf1946d374b44a0a2a95533562ba954/os-keypairs
```
```
{
    "keypair": {
        "name": "keypair-7d7c3650-dabe-4eb0-b904-5c464453c043",
        "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\n"
    }
}
```
#### 响应参数
| 参数      | 参数类型   | 描述                                                     |
|:---|:---|:---|
| keypair | Object | SSH密钥信息，详情请参见[表3]。 |
   
 表3keypair字段数据结构说明 
| 参数          | 参数类型   | 描述                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| fingerprint | String | 密钥对应指纹信息。                                                                                                                                                                                                                                                                           |
| name        | String | 密钥名称。                                                                                                                                                                                                                                                                               |
| public_key  | String | 密钥对应的公钥信息。                                                                                                                                                                                                                                                                          |
| private_key | String | 密钥对应的私钥信息。 - 创建SSH密钥时，响应中包括private_key的信息。  - 导入SSH密钥时，响应中不包括private_key的信息。   |
| user_id     | String | 密钥所属用户ID。                                                                                                                                                                                                                                                                           |
   
#### 响应示例
```
{
    "keypair": {
        "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\n",
        "user_id": "f882feb345064e7d9392440a0f397c25",
        "name": "keypair-7d7c3650-dabe-4eb0-b904-5c464453c043",
        "fingerprint": "35:9d:d0:c3:4a:80:d3:d8:86:f1:ca:f7:df:c4:f9:d8"
    }
}
```
#### 返回值
正常返回值：
| 返回值 | 说明           |
|:---|:---|
| 200 | 服务器已成功处理了请求。 |
   
其他返回值请参考[状态码](https://support.huaweicloud.com/api-bms/bms_api_0801.html)。
#### 错误码
请参考[错误码](https://support.huaweicloud.com/api-bms/bms_api_0802.html)。
