更新时间:2024-04-18 GMT+08:00

创建和导入SSH密钥

功能介绍

创建SSH密钥,或把公钥导入系统,生成密钥对。

创建SSH密钥成功后,请把响应数据中的私钥内容保存到本地文件,用户使用该私钥登录云服务器。为保证云服务器安全,私钥数据只能读取一次,请妥善保管。

密钥对创建后默认是属于创建用户的,如果是子账号创建的密钥,包括主账号在内的其他用户无法查看不属于本用户的密钥对。

URI

POST /v2.1/{project_id}/os-keypairs

参数说明请参见表1
表1 参数说明

参数

是否必选

描述

project_id

项目ID。

获取方法请参见获取项目ID

请求消息

请求参数如表2所示。

创建SSH密钥时,只需要提交SSH密钥的name属性。导入SSH密钥时,才需要提交public_key属性。

表2 请求参数

参数

是否必选

参数类型

描述

keypair

Object

创建或导入的SSH密钥信息,详情请参见表3

表3 keypair字段数据结构说明

参数

是否必选

参数类型

描述

public_key

String

导入的公钥信息。

建议导入的公钥长度不大于1024字节。

说明:

长度超过1024字节会导致云服务器注入该密钥失败。

type

String

密钥类型,值为“ssh”“x509”

微版本2.2及以上版本支持。

name

String

密钥名称。

新创建的密钥名称不能和已有密钥名称相同。

user_id

String

密钥的用户ID。

微版本2.10及以上版本支持。

响应消息

响应参数如表4所示。
表4 响应参数

参数

参数类型

描述

keypair

Object

SSH密钥信息,详情请参见表5

表5 keypair字段数据结构说明

参数

参数类型

描述

fingerprint

String

密钥对应指纹信息。

name

String

密钥名称。

public_key

String

密钥对应publicKey信息。

private_key

String

密钥对应privateKey信息。

  • 创建SSH密钥时,响应中包括private_key的信息。
  • 导入SSH密钥时,响应中不包括private_key的信息。

user_id

String

密钥所属用户ID。

type

String

密钥类型,值为“ssh”“x509”

微版本2.2及以上版本支持。

请求示例

  • 导入SSH密钥。
    POST https://{endpoint}/v2.1/{project_id}/os-keypairs
    
    {
        "keypair": {
            "public_key": "ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQDWNgTxQYeBzK9LYy4IakX7IsIl5j5zqR6BU2GJaEg3RK6dlS7rKFQhvy/V/1emK+GT/7P8up9VsMZ9Dx6PBOLow5p+2/wGsMlwDJpW*************************************************************************************************************************************************************************************************************************** Generated-by-Nova\\n\n",
            "type": "ssh",
            "name": "demo1",
            "user_id": "fake"
        }
    }
  • 创建SSH密钥。
    POST https://{endpoint}/v2.1/{project_id}/os-keypairs
    
    {
        "keypair": {
            "name": "demo"
        }
    }

响应示例

导入SSH密钥:

{
    "keypair": {
        "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWNgTxQYeBzK9LYy4IakX7IsIl5j5zqR6BU2GJaEg3RK6dlS7rKFQhvy/V/1emK+GT/7P8up9VsMZ9Dx6PBOLow5p+2/wGsMlwDJpWiQ8zNnE********************************************************************************************************************************************************************************************************************************************* Generated-by-Nova\\n\n",
        "user_id": "6fc0d2cbbfab40b199874b97097e913d",
        "name": "demo1",
        "fingerprint": "fc:47:b5:c3:7d:25:32:**:**:**:**:**:**:**:**:**"
    }
}

创建SSH密钥:

{
    "keypair": {
        "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWNgTxQYeBzK9LYy4IakX7IsIl5j5zqR6BU2GJaEg3RK6dlS7rKFQhvy/V/1emK+GT/7P8up9VsMZ9Dx6PBOLow5p+2/wGsMlwDJpWiQ8zNnE********************************************************************************************************************************************************************************************************************************************* Generated-by-Nova\n",
        "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1jYE8UGHgcyvS2MuCGpF+yLCJeY+c6kegVNhiWhIN0SunZUu\n6yhUIb8v1f9Xpivhk/+z/LqfVbDGfQ8ejwTi6MOaftv8BrDJcAyaVokPMzZxDIPr\nvwK/2YWBwDMihADjicSHJz6FIMXzXY/3ol1ffAGm7AXVAO0A99DoPBeAZp9pYov1\ng/Sm0EFY2+5Gwd4DSCaRk1HKF+92q6K6pKv6aWi0ZpsDCe20yBpfP9DFlNg8vnkw\ncjmgzG9obWwfo/GV8hLuzqKMtDWknfjzR79z2fTiFTu4HdZcqE0bwjCvxd+Ovs5m\nbZORAEkjseUYn50sJNzbboFY17PRjCXxSwUYmwIDAQABAoIBADNKQ+ywUA3YQLDA\nUqlZKOB09h+0/YccG13D5TrNaV0yaMz6h31u7pYV/RI0TXxQTXbuZt5AoR4Xca9I\nC30bImmxTDDL45CGi/T0T5AgyS7t/iuM+smFkwI2YVbv53fL7q9yCxpucdnjC95/\nNj/+M3qxupIQ42uRVAYCU1jwF6J6YLy/9UamrmVd4bWFRtT19O7uszUhHLqJOZXq\n3ItqnMyD5bSMkzMN+RxmZVXAPkBOonGVeBBInCjvHv23REkngX38zcUSc543H3Di\n4673helqSdMnI0/TgyfLQcNuOsfQcD02A**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************\n-----END RSA PRIVATE KEY-----\n",
        "user_id": "6fc0d2cbbfab40b199874b97097e913d",
        "type": "ssh",
        "name": "demo",
        "fingerprint": "fc:47:b5:c3:7d:25:32:**:**:**:**:**:**:**:**:**"
   }
}

返回值

请参考通用请求返回值