Updated on 2025-12-29 GMT+08:00

Creating and Importing an SSH Key Pair

Function

Create and import an SSH key pair.

Calling Method

For details, see Calling APIs.

URI

POST /v3/{project_id}/keypairs

Table 1 URI parameter

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID

Request Parameters

Table 2 Request header parameter

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token.

It can be obtained by calling the IAM API. The value of X-Subject-Token in the response header is the user token.

Table 3 Request body parameter

Parameter

Mandatory

Type

Description

keypair

Yes

CreateKeypairAction object

Parameter in the request body for creating a key pair

Table 4 CreateKeypairAction

Parameter

Mandatory

Type

Description

name

Yes

String

SSH key pair name.

  • A new key pair cannot use the same name as an existing one.

  • The name can contain at most 255 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.

type

No

String

SSH key pair type. The value can be ssh or x509.

public_key

No

String

String of a public key to be imported.

scope

No

String

Tenant-level or user-level. The value can be domain or user.

user_id

No

String

User to whom an SSH key pair belongs.

key_protection

No

KeyProtection object

SSH key pair private key management and protection.

Table 5 KeyProtection

Parameter

Mandatory

Type

Description

private_key

No

String

Private key of the imported SSH key pair.

encryption

Yes

Encryption object

Encryption method for the private key.

Table 6 Encryption

Parameter

Mandatory

Type

Description

type

Yes

String

The value can be kms or default.

  • default: default encryption mode, which applies to sites where the KMS service is not deployed.

  • kms: KMS encryption mode.

    If KMS is unavailable, set this parameter to default.

kms_key_name

No

String

KMS key name.

  • If type is set to kms, you must enter the KMS key name or ID.

kms_key_id

No

String

KMS key ID.

  • If type is set to kms, you must enter the KMS key name or ID.

Response Parameters

Status code: 200

Table 7 Response body parameter

Parameter

Type

Description

keypair

CreateKeypairResp object

SSH key pair details

Table 8 CreateKeypairResp

Parameter

Type

Description

name

String

SSH key pair name

type

String

SSH key pair type. The value can be ssh or x509.

public_key

String

Public key information about an SSH key pair

private_key

String

Private key information about an SSH key pair

  • The information about the private key is contained in the response for creating an SSH key pair.

  • The information about the private key is not contained in the response for importing an SSH key pair.

fingerprint

String

Fingerprint information about an SSH key pair

user_id

String

User to whom an SSH key pair belongs

Status code: 400

Table 9 Response body parameter

Parameter

Type

Description

error_code

String

Error code

error_msg

String

Error description

Example Request

{
  "keypair" : {
    "name" : "demo2"
  }
}

Example Response

Status code: 200

Request succeeded.

{
  "keypair" : {
    "name" : "demo",
    "type" : "ssh",
    "public_key" : "ssh-rsa AAAAB3NzaC1yc2EAAAADAQAB...",
    "private_key" : "-----BEGIN RSA PRIVATE KEY-----...",
    "fingerprint" : "49:ef:73:2b:9b:7f:2e:0c:58:d3:e3:42:8e:28:04:3b",
    "user_id" : "e4f380899b1248918f3d37098dc63746"
  }
}

Status code: 400

Error response

{
  "error_code" : "KPS.XXX",
  "error_msg" : "XXX"
}

Status Codes

Status Code

Description

200

Request succeeded.

400

Error response

Error Codes

For details, see Error Codes.