curl --request POST \
--url https://api.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ssh_key_id": "77777777-7777-4777-8777-777777777777"
}
'{
"id": "77777777-7777-4777-8777-777777777777",
"organization_id": "22222222-2222-4222-8222-222222222222",
"tenant_id": "22222222-2222-4222-8222-222222222222",
"public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExampleKeyMaterialForDocsOnly0000000000 dev@example.com",
"fingerprint": "SHA256:ExampleFingerprintForDocumentationOnly000000",
"label": "laptop",
"status": "active",
"created_at": "2026-10-14T12:00:00Z",
"revoked_at": null
}{
"code": "<string>",
"detail": "<string>"
}{
"detail": {
"code": "ssh_key_not_owned",
"message": "That SSH key belongs to another account."
}
}{
"code": "<string>",
"detail": "<string>"
}{
"detail": {
"code": "reservation_not_launchable",
"message": "This reservation cannot launch in its current state."
}
}{
"code": "<string>",
"detail": "<string>"
}{
"error": "rate_limited",
"retry_after": 42,
"detail": "Too many requests. Try again in 42 seconds."
}{
"code": "<string>",
"detail": "<string>"
}Assign an SSH key to a reservation
Assigns one key to a VM or Bare Metal reservation and queues the reservation’s key set for its active machines. Send either the ID of an active organization key or a new public key; a new key is registered to your organization first. The first assignment replaces the default of every organization key, so afterwards only assigned keys are delivered. Queued is not installed; wait until the key’s fingerprint appears in authorized_key_fingerprints on each node before connecting. You can assign keys before launch; they are used when machines start.
curl --request POST \
--url https://api.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ssh_key_id": "77777777-7777-4777-8777-777777777777"
}
'{
"id": "77777777-7777-4777-8777-777777777777",
"organization_id": "22222222-2222-4222-8222-222222222222",
"tenant_id": "22222222-2222-4222-8222-222222222222",
"public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExampleKeyMaterialForDocsOnly0000000000 dev@example.com",
"fingerprint": "SHA256:ExampleFingerprintForDocumentationOnly000000",
"label": "laptop",
"status": "active",
"created_at": "2026-10-14T12:00:00Z",
"revoked_at": null
}{
"code": "<string>",
"detail": "<string>"
}{
"detail": {
"code": "ssh_key_not_owned",
"message": "That SSH key belongs to another account."
}
}{
"code": "<string>",
"detail": "<string>"
}{
"detail": {
"code": "reservation_not_launchable",
"message": "This reservation cannot launch in its current state."
}
}{
"code": "<string>",
"detail": "<string>"
}{
"error": "rate_limited",
"retry_after": 42,
"detail": "Too many requests. Try again in 42 seconds."
}{
"code": "<string>",
"detail": "<string>"
}Idempotency-Key. Assigning a key that is already assigned leaves the assignment in place and queues delivery again.
CLI equivalent: ornn ssh-keys assignments assign <reservation-id> --key <key-id>.Authorizations
Create an organization API key in Account Settings > Developer. Do not send this key to the Kubernetes API server.
Path Parameters
A reservation your organization holds. Keys are delivered to its VM and Bare Metal machines.
Body
- Existing key
- New public key
An active organization SSH key.
Response
The key is assigned and delivery is queued for active machines. A request with a new public key also returns outcome.
Your organization.
The OpenSSH public key as registered, including any comment.
SHA-256 fingerprint in OpenSSH format, such as SHA256:...
active, revoked Same value as organization_id. Use organization_id.
Your name for the key.
Present when the request sent a new public key.
created, already_registered, reactivated Was this page helpful?