Ir para o conteúdo
NimbusNexus

SSH keys

SSH keys are how you log into Linux VMs after they boot. Register your public key on the project; every new VM gets it dropped into the default user's ~/.ssh/authorized_keys via cloud-init.

How it works

You register the public key only — NimbusNexus never sees your private key. At boot, the metadata service exposes the project's registered public keys to cloud-init, which writes them into the default user's authorized_keys file (ubuntu on Ubuntu, debian on Debian, rocky on Rocky, Administrator for Windows via WinRM).

Keys added after a VM boots are not automatically pushed to running VMs. Either reboot the VM (cloud-init re-runs on first boot only by default, so this only helps with images that opt in to re-run) or add the key inside the VM with your usual config management.

Supported formats

We accept:

  • ed25519 — recommended; small, fast, modern
  • ecdsa-sha2-nistp256 / nistp384 / nistp521
  • RSA — 2048-bit minimum; 4096-bit recommended; we reject < 2048

DSA is rejected (it's been deprecated upstream since OpenSSH 7.0).

The key string must be in OpenSSH format — the single line starting with ssh-ed25519, ecdsa-sha2-nistp..., or ssh-rsa, followed by the base64-encoded key material, optionally followed by a comment. That's what ~/.ssh/id_*.pub files contain by default.

Fingerprints + duplicates

Each key has a stable SHA256 fingerprint. The API rejects duplicates by fingerprint — adding the same key twice (even with a different label) returns 409. This catches the common "I added my laptop key to two projects" mistake before it causes confused account-attribution.

Removing a key

Deleting a key from the project removes it from future VM boots. Already-booted VMs keep the key in their authorized_keys file — cloud-init isn't a state-reconciler, it's a first-boot installer. To revoke a key from running VMs, either:

  1. Recreate the VMs from a fresh snapshot, or
  2. Edit ~/.ssh/authorized_keys inside the VM directly (or via your config management).

If the goal is a fast revoke because the key was compromised: the dashboard has a one-click "revoke from all projects" that pushes a removal via the metadata service. The API equivalent is in the IAM reference (coming).

What's next

Reference

GET/api/v1/ssh/

Ssh List

List the SSH keypairs registered for the calling user, including SHA-256 fingerprints.

Responses

  • 200Successful Response
  • 401Unauthorized
  • 403Forbidden
  • 429Too Many Requests
  • 500Internal Server Error

https://api.nimbusnexus.net/api/v1/ssh/

POST/api/v1/ssh/

Ssh Generate

Generate a new SSH keypair on the server and return the private key (returned only once).

Request body

JSON body required.

Responses

  • 201Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

https://api.nimbusnexus.net/api/v1/ssh/

DELETE/api/v1/ssh/

Ssh Delete

Delete one or more SSH keypairs by ID; reports any IDs that were not found.

Request body

JSON body required.

Responses

  • 204Successful Response
  • 401Unauthorized
  • 403Forbidden
  • 404Not Found
  • 422Validation Error
  • 429Too Many Requests
  • 500Internal Server Error

https://api.nimbusnexus.net/api/v1/ssh/

POST/api/v1/ssh/add_public

Ssh Add Public

Register an existing SSH public key under the calling user's account.

Request body

JSON body required.

Responses

  • 201Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

https://api.nimbusnexus.net/api/v1/ssh/add_public

Need to make a real call? Try these endpoints in the live Swagger UI →